在leetcode中掌握到的[长期更新]
来源:互联网 发布:如何破解软件试用期 编辑:程序博客网 时间:2024/05/29 09:36
2017/1/24
461.hamming distance
①.C++函数返回数组
数组不是一种类型,不能直接返回。需要返回数组的指针:
int* returnArray(){ int *a; a=new int [100]; return a;}int main(){ int *a=returnArray();}
②.
a=i++;//将i的值赋值给a,即a=i;然后再执行i=i+1;也就是【a=i++;】与【a=i; i=i+1;】等价。
a=++i;//将i+1的值赋给a,即a=i+1;然后再执行i=i+1;也就是【a=++i;】与【a=i+1;i=i+1;】等价。
单独使用时,++i效率更高。
③.
判断一串二进制数a中1的个数:
a&=a-1直到a=0,与运算的次数即为所求。
原理:不断去除二进制数位于最低位的1,那a&(a-1)为什么可以做到这一点呢?请考虑一个二进制数n,如果它的最右端的1在第k个位置,n-1后k位置变0,k左边的数不变,k右边的0变为1,与运算后可以将n的最右端的1变为0。
④
位运算符:& | ^ >> <<
应用:涉及到二进制运算时,例如判断一个数是否为奇/偶,末尾是否为0,是否被2整除:if(a&1==0)
⑤.针对本题:
汉明距离实际上是两个二进制数中不同位数的个数,求解时可以将两数异或,再利用③的方法得出结果中1的个数。
476.number complement
又是一道与二进制数位计算有关的题目,这种题用位运算来处理可以提高运行效率,但是思维比较难。
如果只用~按位取反的话,得到的是一个补码表示,例如101取反,得到11111010,结果是-6;而题目要求得到的是00000010,结果是2。
对于这种需要部分求反的情况,可以采用以下异或的方法:
先想想一个二进制数与全1异或,得到的是它的反,与全0异或,得到的是它本身。那么我们可以构造一个二进制数:需要取反的位是1,不需要取反的位是0。
那要如何构造这样一个数呢?这里有两种方法:1.首先要知道需要取反的所在位置,将操作数依次右移,每右移一次,将0001左移一次,然后减去1,这样可以得到右边对应的位全为1的二进制数。2.还可以声明一个无符号数11111111,同样将其左移相应位数,再进行取反即可得到。
构造出这样一个二进制数,将其与原操作数异或,便可得到所求结果。
485.max consecutive 1s
vector结构相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.
例:声明一个int向量以替代一维的数组:vector <int> a;(等于声明了一个int数组a[],大小没有指定,可以动态的向里面添加删除)。用vector代替二维数组.其实只要声明一个一维数组向量即可,而一个数组的名字其实代表的是它的首地址,所以只要声明一个地址的向量即可,即:vector <int *> a.同理想用向量代替三维数组也是一样,vector <int**>a;再往上面依此类推.
1 0
- 在leetcode中掌握到的[长期更新]
- 编程中碰到的异常以及解决方案(长期更新)
- webpart 常见的一些问题(长期更新中。。。)
- android 开发中遇到的ERROR经常长期更新笔记
- 我工作中遇到的SQL(长期更新)
- opencv学习中遇到的函数汇集(长期更新)
- linux vim的使用方法笔记(长期更新中)
- 【Web前端】学习中遇到的问题(长期更新)
- 记录工作中遇到的一些问题(长期更新)
- 各视频网站在Webview中接入用html代码示例 长期更新
- sql 方法(长期更新中)
- ASP.Net FAQ长期更新中...
- 长期转载精华帖【持续更新中】
- javascript中常见问题总结(长期更新)
- 日常linux常用命令集合!长期更新中!!
- linux 常用命令 (长期更新中...)
- 在ubuntu16中更新到最新的nodejs
- emacs 的一些学习链接. 长期更新
- EventBus替代AsyncTask在子线程中处理任务
- |BZOJ 2060|动态规划|Visiting Cows 拜访奶牛
- [IO系统]05 open流程分析
- Android studio下将项目代码上传至github包括更新,同步,创建依赖
- Maven resource 配置中include与exclude及其filter的使用
- 在leetcode中掌握到的[长期更新]
- android 使用SharedPreferences对数据存储/删除/读取/文件删除
- thinkphp截取字符串长度,模板变量限制输出字数的方法
- iOS NSDate比较返回差多少时间
- shape中的ring标签的使用方法
- 7.数码管动态显示实验
- Apache Zeppelin设置访问登录
- jquery.cookie() 用法详解
- [CF Gym 100372E] Sergey’s game