LeetCode 二进制问题
338. Counting Bits(计算小于n的各个数值对应的二进制1的个数)
思路:通过奇偶判断,if i是偶数,a[i]=a[i/2],if i是奇数,a[i]=a[i-1]+1。
class Solution {
public:
vector<int> countBits(int num) {
vector<int>res(num+, );
for(int i=;i<=num;i++)
{
if(i&)
res[i] = res[i-]+;//如果尾数为1,那么结果就是奇数,等于前一个值加1
else
res[i] = res[i/];//如果尾数为0,那么就是偶数,等于他一半的值
}
return res;
}
};
136. Single Number(只有一个元素出现1次,其他出现2次,寻找只出现一次的数值)
思路:异或 解决,异或性质: x^x=0,x^0=x
class Solution {
public:
int singleNumber(vector<int>& nums) {
int n=nums.size();
int res=nums[];
for (int i=;i<n;i++){
res=res^nums[i];
}
return res;
}
};
137. Single Number II (只有一个元素出现1次,其他出现3次,寻找只出现一次的数值);
思路:按照位运算,每个位置是上1的个数为3,则变0
class Solution {
public:
int singleNumber(vector<int>& nums) {
int n = nums.size(),answer=;
for (int j = ; j < ; j++)
{
int a = <<j,count=;//count 记录每个位置上1的个数
for (int i = ; i < n; i++)
{
if (a&nums[i]) count++;//统计转化为二进制之后,在a的位置上1的个数
}
if (count % != )//如果每个位置上的1不为3,则最后的数字中,这个位置中一定是1
answer |= a;
}
return answer;
}
};
260. Single Number III(有两个元素出现1次,其他出现2次,寻找两个出现一次的数值);
思路:整体异或结果,而后在这个结果中某个位置为1的位置,进而分割成两个部分,分别异或,者可得到结果
class Solution {
public:
vector<int> singleNumber(vector<int>& nums) {
int n = nums.size();
vector<int> vec;
int res=;
for (int i = ; i < n; i++)
{
res ^= nums[i];
}
int index = ;//记录异或的结果第一个为1的位置,0表示第一个位置为1
for (int i = ; i < ; i++)
{
if (res & == )
break;
index++;
res = res >> ;
}
int num1=, num2 = ;
for (int i = ; i < n; i++)
{
if ((nums[i] >> index) & == )//以index位置将述组分为两段异或
num1 ^= nums[i];
else
num2 ^= nums[i];
}
vec.push_back(num1);
vec.push_back(num2);
return vec;
}
};
LeetCode 二进制问题的更多相关文章
- leetcode -- 二进制
leetcode -- 二进制 在学习编程语言的运算符时,大部分语言都会有与,或等二进制运算符,我在初期学习这些运算符的时候,并没有重点留意这些运算符,并且在后续的业务代码中也没有频繁的使用过,直到后 ...
- leetcode 二进制求和 python
class Solution: def addBinary(self, a, b): """ :type a: str :type b: str :rtype: str ...
- [LeetCode] Prime Number of Set Bits in Binary Representation 二进制表示中的非零位个数为质数
Given two integers L and R, find the count of numbers in the range [L, R] (inclusive) having a prime ...
- [LeetCode] Special Binary String 特殊的二进制字符串
Special binary strings are binary strings with the following two properties: The number of 0's is eq ...
- [LeetCode] Count Binary Substrings 统计二进制子字符串
Give a string s, count the number of non-empty (contiguous) substrings that have the same number of ...
- [LeetCode] Binary Gap 二进制间隙
Given a positive integer N, find and return the longest distance between two consecutive 1's in the ...
- 【leetcode 简单】 第九十三题 二进制手表
二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59). 每个 LED 代表一个 0 或 1,最低位在右侧. 例如,上面的二进制手表读取 “3:25”. ...
- LeetCode:二进制手表【401】
LeetCode:二进制手表[401] 题目描述 二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59). 每个 LED 代表一个 0 或 1,最低位在右 ...
- LeetCode:二进制求和【67】
LeetCode:二进制求和[67] 题目描述 给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11" ...
随机推荐
- Linux部署NFS服务共享文件
NFS(网络文件系统)用于linux共享文件 第1步:配置所需要的环境 使用两台Linux主机 主机名称 操作系统 IP地址 NFS Centos7 192.168.218.139 NFSa Cent ...
- MATLAB实例:构造网络连接图(Network Connection)及计算图的代数连通度(Algebraic Connectivity)
MATLAB实例:构造网络连接图(Network Connection)及计算图的代数连通度(Algebraic Connectivity) 作者:凯鲁嘎吉 - 博客园 http://www.cnbl ...
- python 1 默写用递归实现无限极分类 2 默写用树实现无限极分类
data=[ {"cat_id":3,"name":"沙河","parent_id":1}, {"cat_id ...
- 201871010102-常龙龙《面向对象程序设计(java)》第一周学习总结
博文正文开头:(3分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/p/11435127.html 这个作业的要求在哪里 https://e ...
- licode(1) Basic Example 客户端解析
整体 在浏览其中输入https://dst_host_domain:13004后, 请求了index.html,该文件在licode\extras\basic_example\public\index ...
- shell 下
一句话来概括shell shell是一个基于Linux内核和应用程序之间的一个解释器 Shell解释器 /bin/sh /bin/bash 目前多用的是bash /sbin/ ...
- 【转】MyBatis缓存机制
转载:https://blog.csdn.net/bjweimengshu/article/details/79988252. 本文转载自公众号 美团技术点评 前言 MyBatis是常见的Java数据 ...
- for循环用了那么多次,但你真的了解它么?
一.基础的for循环 0.使用while也是一种循环方式,此处探究for相关的循环,就不做拓展了. 1.遍历数组的时候,初学时是使用的如下样式的for循环: for(int i=0;i<a.le ...
- 细数使用View UI(iView)开发中遇到的坑
一.前言 View UI,即原先的 iView,是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC 界面的中后台产品. 官网地址:https://www.iviewui.com/docs ...
- Spring Cloud Gateway-自定义异常处理
前提 我们平时在用SpringMVC的时候,只要是经过DispatcherServlet处理的请求,可以通过@ControllerAdvice和@ExceptionHandler自定义不同类型异常的处 ...