总结
汋灼
这个作者很懒,什么都没留下…
展开
-
关于原码、补码、反码
原码、补码、反码是机器数的三种表示形式。正数:原码 == 反码 == 补码负数:反码等于原码符号位不变,其余各位取反;补码等于反码加1。计算机中整数以补码的形式存储和参与计算。补码:1. 能使数字表示范围增加一位2. 不会有两个编码方式都表示0的情况以32位的整数为例:用原码、反码表示范围只能是[-127 ~ 127],而补码能表示[-128 ~ 127]原码、反码中10000000000000000000000000000000和0000000000000000000原创 2021-07-09 16:18:14 · 801 阅读 · 0 评论 -
0-1背包问题总结
三种常见解法:1. 普通动态规划建立n维dp数组,保存每一情况的计算结果每个位置计算出来后值确定,不再发生变动dp数组计算顺序不限,既可从小下标到大下标,又可从大下标到小下标(因为最外层循环每层计算结果只依赖于上一层的一些计算结果,不受本层其他值更新的影响,依赖上一层还是本层前面的计算结果体现出0-1背包问题和普通背包问题的差别)2. 动态规划+ 空间优化(时、空效率最高的解法)建立n-1维dp数组,保存每加入一个选择项后的计算结果每个位置计算出来后值还有可能被更新:每新..原创 2021-03-30 17:48:57 · 447 阅读 · 0 评论 -
kSum题总结
通用:1. 除非要返回下标,否则一定要数组排序2. 固定一个数,双指针移动确定另外两个数如果要求3sum小于target:从小到大排序数组(即Arrays.sort()的默认排序),这样外围的循环在nums[i] * 3 > target的时候就可以结束,直接return;如果要求3sum大于target:从大到小排序数组,外围循环在nums[i] * 3 < target的时候结束;或依然从小到大排序数组,但从i=2到i=length-1做外围循环,即固定最...原创 2021-03-22 20:28:39 · 201 阅读 · 0 评论