这是今年某公司的面试题: 一般思路是:把整数n转换成二进制字符数组,然后一个一个数: 第二种方法是:将整数n与1进行与运算,当整数n最低位是1时,则结果为1,否则结果为0。 然后将1左移一位,继续与n进行与运算,当次低位是1时,结果非零,否则结果为0。循环以上操作,记录非零的次数即可。 第三种方法是 ...
分类:
编程语言 时间:
2019-08-28 12:39:53
阅读次数:
85
C++ bitset——高端压位卡常题必备STL 以下内容翻译自cplusplus.com,极大地锻炼了我的英语能力。 bitset存储二进制数位。 bitset就像一个bool类型的数组一样,但是有空间优化——bitset中的一个元素一般只占1 bit,相当于一个char元素所占空间的八分之一。 ...
分类:
其他好文 时间:
2019-08-27 12:47:48
阅读次数:
94
整数运算 Java的整数运算遵循四则运算规则,可以使用任意嵌套的小括号。四则运算规则和初等数学一致。例如: int i = (100 + 200) * (99 - 88); // 3300 int n = 7 * (5 + (i - 9)); // 23072 但整数运算永远是精确的,即使是除法也是... ...
分类:
其他好文 时间:
2019-08-27 12:20:46
阅读次数:
110
题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 A1:判断数num的最右边一位是不是1,每次右移1位,直到数num变为0 > 要区分正数情况和负数情况,正数右移补0,负数右移补1 A2:避免死循环,不选择右移数num,而是左移flag > 循环次数比较大,32位整数需要循环3 ...
分类:
其他好文 时间:
2019-08-27 00:30:36
阅读次数:
110
1. >>>常用快捷键 移动光标快捷键: Ctrl+a 光标回到命令行首* Ctrl+e 光标回到命令行尾* Ctrl+f 光标向右移动一个字符(相当于方向键右键) Ctrl+b 光标向左移动一个字符(相当于方向键左键) 剪切、粘贴、清除快捷键: Ctrl+Insert 复制命令行内容* Shift ...
分类:
系统相关 时间:
2019-08-26 20:59:10
阅读次数:
116
495. 滑动窗口 ★★ 输入文件:window.in 输出文件:window.out 简单对比时间限制:2 s 内存限制:256 MB 【问题描述】 给你一个长度为N的数组,一个长为K的滑动的窗体从最左移至最右端,你只能见到窗口的K个数,每次窗体向右移动一位,如下表: 你的任务是找出窗口在各位置时 ...
分类:
其他好文 时间:
2019-08-26 00:13:47
阅读次数:
89
1. 题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 2. 思路和方法 使用移位(<<)和 “| & !”操作来实现。1的二进制是:前面都是0,最后一位为1。每次向左移位一下,使得flag的二进制表示中始终 ...
分类:
其他好文 时间:
2019-08-25 13:55:38
阅读次数:
116
题目描述: 给定一个字符串 s 。现在问你有多少个本质不同的 s 的子串 t=t1 t2 ? tm (m>0) 使得将 t 循环左移一位后变成的 t′=t2 ? tm t1 也是 s 的一个子串。 题解: 好了我知道这个不好懂,所以我们再配张图: ...
分类:
其他好文 时间:
2019-08-20 22:30:24
阅读次数:
115
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 1.右移肯定是不行 因为若是有符号数中的复数,那么则进入死循环 2.左移flag 让n保持不动; 可能有疑惑:while(flag)不是一个死循环了吗?? 毕竟flag左移一直是大于0; 看调试结果: 证明了循环的次数等于 整数二进制 ...
分类:
其他好文 时间:
2019-08-19 13:02:22
阅读次数:
91
Vim的移动大法 移动光标的按键 “h” 向左移动 “j”向下移动 “k”向上移动 “l”向右移动 在单词之间移动 注:word指的是以非空白字符分割的单词,WORD是以空白字符分割的单词。 w/W 移动到下一个word/WORD开头 e/E 移动到下一个word/WORD结尾 b/B 回到上一个w ...
分类:
移动开发 时间:
2019-08-17 21:50:52
阅读次数:
318