[Leetcode] single number ii 找单个数
2024-09-27 07:29:26
Given an array of integers, every element appears three times except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
题意:给定数组,除一个数仅出现一次外,其余都出现三次,找到仅出现一次的数字。
思路:这题不能延续single number的解法,但是思路可以向逻辑运算符那边靠。这题我开始没有想出来,这个逻辑运算对我而言是一个大坑。看了Grandyang的博客才明白。这里给出原博客中的解释:用3个整数来表示INT的各位的出现次数情况,one表示出现了1次,two表示出现了2次。当出现3次的时候该位清零。最后答案就是one的值,
ones 代表第ith 位只出现一次的掩码变量;twos 代表第ith 位只出现两次的掩码变量;threes 代表第ith 位只出现三次的掩码变量。
博主的个人理解经验是:写出一个例子,按照程序走一遍。
class Solution {
public:
int singleNumber(int A[], int n)
{
int one=,two=,three=;
for(int i=;i<n;++i)
{
two |=one&A[i];
one ^=A[i];
three=one&two;
one &=~three;
two &=~three;
}
return one;
}
};
原博客中还给出了Single Number III
最新文章
- 转→js数组遍历 千万不要使用for...in...
- 闲来无事,写个基于UDP协议的Socket通讯Demo
- codeforces 727F. Polycarp&#39;s problems
- 【BZOJ 3049】【USACO2013 Jan】Island Travels BFS+状压DP
- 使用CFURLCreateStringByAddingPercentEscapes进行URL编码
- Dynamics AX 2012 R2 将系统用户账号连接到工作人员记录
- 【SSO单点系列】(3):CAS4.0 登录页验证码的添加
- delphi调用 java 的 WebService服务端.
- 软中断&;amp;tasklet&;amp;工作队列
- UOJ 216 Jakarta Skyscrapers
- http协议之cookie标准RFC6265介绍
- C#中struct和class的区别详解
- AJAX请求返回HTTP 400 错误 - 请求无效 (Bad request)
- zipkin 整合elastic
- Clion调试ROS包
- zynq里面的AXI总线(2017-1-11)
- rabbitmq学习(六) —— 主题
- inline-blcok 之间的空白间隙
- SharePoint Error occurred in deployment step &#39;Recycle IIS Application Pool&#39;: 0x80070005:拒绝访问
- 「LibreOJ β Round #4」求和