LeetCode 2044. 统计按位或能得到最大值的子集数目(状态压缩DP)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给你一个整数数组 nums ,请你找出 nums 子集 按位或 可能得到的 最大值 ,并返回按位或能得到最大值的 不同非空子集的数目

如果数组 a 可以由数组 b 删除一些元素(或不删除)得到,则认为数组 a 是数组 b 的一个 子集 。如果选中的元素下标位置不一样,则认为两个子集 不同 。

对数组 a 执行 按位或 ,结果等于 a[0] OR a[1] OR ... OR a[a.length - 1](下标从 0 开始)。

示例 1:
输入:nums = [3,1]
输出:2
解释:子集按位或能得到的最大值是 3 。有 2 个子集按位或可以得到 3- [3]
- [3,1]示例 2:
输入:nums = [2,2,2]
输出:7
解释:[2,2,2] 的所有非空子集的按位或都可以得到 2 。总共有 23 - 1 = 7 个子集。示例 3:
输入:nums = [3,2,1,5]
输出:6
解释:子集按位或可能的最大值是 7 。有 6 个子集按位或可以得到 7- [3,5]
- [3,1,5]
- [3,2,5]
- [3,2,1,5]
- [2,5]
- [2,1,5]提示:
1 <= nums.length <= 16
1 <= nums[i] <= 10^5

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-number-of-maximum-bitwise-or-subsets
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 状态压缩DP
class Solution {
public:int countMaxOrSubsets(vector<int>& nums) {int n = nums.size();vector<int> dp(1<<n);for(int i = 0; i < n; ++i)dp[1<<i] = nums[i];int ans = 0;for(int state = 1; state < (1<<n); ++state){int prevState = state&(state-1);dp[state] = dp[prevState] | dp[state-prevState];ans = max(ans, dp[state]);}int ct = 0;for(int state = 1; state < (1<<n); ++state){if(dp[state] == ans)ct++;}return ct;}
};

32 ms 15.4 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

往java里输入坐标值_java.让用户输入x坐标,和y坐标。当用户输入完x坐标(比如200),敲enter,...

展开全部import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class SetLocationFrame exte…

iOS 5.1.1 设备不能安装AdHoc问题版本号

之前苹果更新了审计规范&#xff0c;要求必须支持64通过苹果的审核权限位架构的应用。但运营商表示反馈。使用iOS5.1.1该系统无法安装我们的包Adhoc版本号。认为非常莫名。由于我们在Deployment Target上确实写着5.1.1&#xff0c;全公司也都没人用这个系统了。在运营纠结这个问…

fastapi 请求体 - 多个参数 / 字段Field / 嵌套模型

文章目录1. 混合使用 Path、Query 和请求体参数2. 多个请求体参数3. 请求体中的单一值4. 多个请求体参数和查询参数5. 嵌入单个请求体参数6. 字段7. 嵌套模型7.1 List 字段7.2 子模型作为类型8. 特殊类型校验9. 带有一组子模型的属性10. 任意 dict 构成的请求体learn from http…

g++: command not found的解决

G没有装或却没有更新以下方法都可以试试&#xff1a;centos&#xff1a;yum -y update gccyum -y install gcc gcc-cubuntu&#xff1a;apt-get update gccapt-get install g转载于:https://www.cnblogs.com/babosa/p/9217963.html

java ltpa_LTPA Cookie原理

1. 什么是LTPA?Lightweight Third-Party Authentication (LTPA)是IBM Websphere和Domino产品中使用单点登录技术。当服务器配置好LTPA认证方式&#xff0c;用户通过浏览器成功登录后&#xff0c;服务器会自动发送一个session cookie给浏览器&#xff1b;此cookie中包含一个LTP…

fastapi 模式的额外信息,示例 / Cookie参数 / Header参数

文章目录1. Pydantic schema_extra2. Field 的附加参数3. Body 额外参数4. Cookie 参数5. Header 参数5.1 重复的 headerslearn from https://fastapi.tiangolo.com/zh/tutorial/schema-extra-example/ 添加一个将在文档中显示的 example 1. Pydantic schema_extra from typ…

Android(java)学习笔记171:服务(service)之绑定服务调用服务里面的方法

1.绑定服务调用服务里面的方法&#xff0c;图解&#xff1a; 步骤&#xff1a; &#xff08;1&#xff09;在Activity代码里面绑定 bindService&#xff08;&#xff09;&#xff0c;以bind的方式开启服务 &#xff1b; bindService&#xff08;intent, new MyConn(), BIND_AUT…

java 动态队列_RabbitMq之动态修改队列参数

RabbitMq不支持修改已经存在的队列和交换机参数&#xff0c;可以通过创建失败&#xff0c;捕获异常信息&#xff0c;然后删除原队列或交换机&#xff0c;然后重新创建&#xff0c;以达到修改参数的功能。package com.sky.study.delete;import java.io.IOException;import java.…

LeetCode 1909. 删除一个元素使数组严格递增

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的整数数组 nums &#xff0c;如果 恰好 删除 一个 元素后&#xff0c;数组 严格递增 &#xff0c;那么请你返回 true &#xff0c;否则返回 false 。 如果数组本身已经是严格递增的&#xff0c;请你也返回 true 。 数组…

mysql subindex_mssql server sql分页存储过程

set quoted_identifier ongoset ansi_nulls ongocreate proc execbypagesqlquery varchar(2000), --//输入参数&#xff1a;sql检索语句或表名pagesize int, --//输入参数&#xff1a;每页显示记录条数pageindex int --//输入参数&#xff1a;当前页码asset nocount onset ansi…

ATS push cache 测试

测试 ATS 注入缓存 参考了&#xff1a; http://serverfault.com/questions/471684/push-content-to-apache-traffic-servers-cache 得到返回&#xff1a;HTTP/1.0 400 Response Not Cachable 搜索得知&#xff0c;头部传入信息太少&#xff0c;必须包含反映时间的项。那个回答应…

fastapi 响应模型 / 响应状态码 / 表单参数

文章目录1. response_model2. 添加输出模型3. 响应模型编码参数4. response_model_include 和 response_model_exclude5. 代码复用&#xff1a;继承6. Union7. 任意 dict 的响应8. 响应状态码9. 表单参数learn from https://fastapi.tiangolo.com/zh/tutorial/response-model/ …

java对象内存模型_Java对象的内存模型

众所周知&#xff0c;函数调用在内存中是通过压栈&#xff0c;退栈实现的&#xff0c;而Java的方法调用则是在JVM栈中通过栈帧实现的&#xff0c;且所有的Java对象都只在堆上分配内存&#xff0e;那么一个Java对象在堆内存里到底长啥样呢&#xff1f;实际上&#xff0c;当一个对…

MySql学习之varchar类型

MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255&#xff0c;其数据范围可以是0~255或1~255&#xff08;根据不同版本数据库来定&#xff09;&#xff0c;在 MySQL5.0以上的版本中&#xff0c;varchar数据类型的长度支持到了65535&#xff0c;也就是说可以存放…

fastapi 请求文件 / 表单 / 处理错误 / 路径操作配置 / jsonable_encoder

文章目录1. File 参数2. 多文件上传3. 请求表单与文件4. 处理错误5. 自定义响应头6. 自定义异常处理器7. 覆盖默认异常处理器8. 使用 RequestValidationError 的请求体9. 复用 FastAPI 异常处理器10. 路径操作参数配置10.1 status_code&#xff0c;tags10.2 summary&#xff0c…

java 静态类的实现_[Java教程]Javascript 静态类的实现

[Java教程]Javascript 静态类的实现0 2012-04-06 11:00:05早些天写过了类的实现&#xff0c;接着我们看看的静态类的实现。这东西在Javascript里用得会非常的频繁&#xff0c;因为针对现在的网页&#xff0c;多个基于同一个类对象的页面不多&#xff0c;往往不同块对象的交互就…

fastapi PUT更新数据 / PATCH部分更新

文章目录1. PUT 更新2. 用 PATCH 进行部分更新learn from https://fastapi.tiangolo.com/zh/tutorial/body-updates/1. PUT 更新 注意&#xff0c;put 没有指定的值&#xff0c;会被重置为默认值 from typing import List, Optionalfrom fastapi import FastAPI from fastap…

Chrome 扩展 最近的历史 HistoryBar v1.1

说明 以前用过一段时间傲游浏览器&#xff0c;渐渐的习惯了它的鼠标手势和一些细微的人性化的功能。比方地址栏左边的“近期訪问的页面”button。能够方便的找到近期 20 条历史记录。 但后来因为某些原因又回到了 Chrome 的怀抱&#xff0c;于是就没有了这些不起眼但非常好用的…

java整数划分递归_整数划分问题(递归法)

整数划分问题是算法中的一个经典命题之一&#xff0c;有关这个问题的讲述在讲解到递归时基本都将涉及。所谓整数划分&#xff0c;是指把一个正整数n写成如下形式&#xff1a;nm1m2...mi; (其中mi为正整数&#xff0c;并且1 < mi < n)&#xff0c;则{m1,m2,...,mi}为n的一…

数组移位

昨天今日头条笔试&#xff0c;发现好简单&#xff0c;一写出了几个问题&#xff0c;回来才想出来。 一个长度不超过10000的整数数组&#xff0c;里面有若干个0&#xff0c;请事先一段代码&#xff0c;将数组中值为0的元素移动到数组的最前面&#xff0c;其余元素相对位置保持不…