剑指offer
文章平均质量分 79
alotuscc
你和你的犬色声马,我和我的各安天涯。
千里走单骑,八方为敌。
青灯古佛度苍生,不愿度己。
展开
-
不用加减乘除做加法
剑指 Offer 65. 不用加减乘除做加法 - 力扣(LeetCode) 十进制加法: 1998+0624=26221998+0624=26221998+0624=2622 不考虑进位 1998+0624=15121998+0624=15121998+0624=1512 只考虑进位 8+4=108+4=108+4=10 90+20=10090+20=10090+20=100 900+600=1000900+600=1000900+600=1000 总和:1512+10+100+1000=26221512+原创 2021-04-02 16:51:43 · 82 阅读 · 0 评论 -
约瑟夫环问题
约瑟夫环问题 剑指 Offer 62. 圆圈中最后剩下的数字 - 力扣(LeetCode) 首先以n=5,m=3n=5, m=3n=5,m=3为例。从n=1n=1n=1到n=5n=5n=5从头开始模拟整个过程。 在模拟的过程中,主要考虑最终留下来的人的位置,为了方便讨论以及贴合题目,规定编号从000开始。 设定f(n,m)f(n,m)f(n,m)为nnn个人中,每次数mmm个,最后安全的人的编号。 现在考虑m=3m=3m=3,为了方便叙述,简化f(n,3)=F(n)f(n,3)=F(n)f(n,3)=F(n原创 2021-04-02 15:37:00 · 175 阅读 · 0 评论 -
回溯算法
回溯算法 78. 子集 - 力扣(LeetCode) 90. 子集 II - 力扣(LeetCode) 可以看到当集合中没有重复数字时可以采用这种回溯算法。 算法构成的遍历树如下所示,每次遍历到一个节点时就将当前路径上所有节点加入到集合中。 我们可以看到一共有8个节点,因此一共有八种结果。 #mermaid-svg-TFch7XY5az0Gy4xF .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font原创 2021-03-31 16:58:08 · 97 阅读 · 0 评论 -
只出现一次的数字
题目 136. 只出现一次的数字 - 力扣(LeetCode) 剑指 Offer 56 - I. 数组中数字出现的次数 - 力扣(LeetCode) 解题思路 异或性质: 0⊕0=0(1)0 \oplus 0=0 \tag{1}0⊕0=0(1) 0⊕1=1(2)0 \oplus 1=1 \tag{2}0⊕1=1(2) 1⊕0=1(3)1 \oplus 0=1 \tag{3}1⊕0=1(3) 1⊕1=0(4)1 \oplus 1=0 \tag{4}1⊕1=0(4) 结论(1):(1):(1):由(1)(2)(原创 2021-04-05 17:20:59 · 92 阅读 · 0 评论 -
数组中数字出现的次数 II
文章目录题目题目描述:示例 1:示例 2:限制:解题思路预备知识:[只出现一次的数字_Lotuscc的博客-CSDN博客](https://blog.csdn.net/canhelove/article/details/115445104)代码 题目 剑指 Offer 56 - II. 数组中数字出现的次数 II - 力扣(LeetCode) 题目描述: 在一个数组numsnumsnums中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。 示例 1: 输入:nums = [3,4原创 2021-04-05 20:04:52 · 157 阅读 · 0 评论