![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 63
sueayee
这个作者很懒,什么都没留下…
展开
-
约瑟夫环
从0开始到n-1,n个数形成一个闭环,每次删除第m个数,求最后一个数。class Solution {public: int lastRemaining(int n, int m) { int res=0; for(int i=2;i<=n;i++){ res=(res+m)%i; } return res; }};...原创 2020-05-24 21:31:29 · 450 阅读 · 0 评论 -
链表合辑
链表合辑1.两数相加给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807/** * Definition for s原创 2020-05-24 18:22:56 · 98 阅读 · 0 评论 -
数据反转合辑
数据反转1.字符串反转方法一:遍历前半部分字符串,将s[i]存入tmp中,s[i]=s[len-1-i],s[len-1-i]=tmp,从而实现s[i]和s[len-1-i]的交换;方法二:使用reverse函数;方法三:将字符从后往前依次push_back到原有字符串中,然后重新从len-1开始往前遍历,s[i]=s.back;之后pop_back最后一个字符。class Solution {public: void reverseString(vector<char>&a原创 2020-05-16 18:13:08 · 332 阅读 · 0 评论 -
寻找第一个比i大的值-遍历、排序
每日温度根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。解题思路:从后往前推算,最后一天输出为0,之后原创 2020-05-16 16:38:12 · 294 阅读 · 0 评论 -
罗马数与整数互换
罗马数与整数互换罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符数值I1V5X10L50C100D500M1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,原创 2020-05-13 22:16:48 · 175 阅读 · 0 评论 -
快速计算 x 的 n 次幂函数-二进制
计算 x 的 n 次幂函数将n换成二进制形式,以计算2的5次幂为例:5的二进制形式为101,即10=1∗20+0∗21+1∗2210=1*2^0+0*2^1+1*2^210=1∗20+0∗21+1∗2225=21∗40∗1612^5=2^1*4^0*16^125=21∗40∗161由此可见,每次乘的值都是前一个值的2次幂,当 n 对应位为0时跳过。class Solution {public: double myPow(double x, int n) { double原创 2020-05-12 21:45:15 · 990 阅读 · 0 评论 -
解数独-回溯算法
解数独编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。空白格用 ‘.’ 表示。解题思路:创建3个数组,分别记录横列、竖列、 3x3 宫内已出现的数字到n1、n2、n3中,之后遍历数独,遇到’.‘则循环填入1-9,若该数字已在n1或n2或n3,则跳过,继续填入下一个数字,若可填入成功,则将n1、n2、n3对应的位置改成1,继续寻原创 2020-05-11 20:28:39 · 680 阅读 · 0 评论 -
爬楼梯-动态规划、逆向推理
爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?解题思路:在n-1阶时向上爬1阶可到达楼顶,在n-2阶时向上爬2阶可到达楼顶,因此到到楼顶的爬法等于到达n-1阶和到达n-2阶的爬法之和。class Solution {public: int climbStairs(int n) { if(n <= 3)return n; int dp[n+1]; dp[1] =原创 2020-05-10 16:42:48 · 238 阅读 · 0 评论 -
最大矩形-遍历、动态规划
最大矩形给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。示例:输入:[[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“0”]]输出: 6解题思路:1.遍历整个矩阵,竖着相连的1依次增加存放在s_up中,横着相连的1依次增加存放在s_left中,考虑matrix可能为单列或单行,因此暂且将s_up或s_left的最大值赋予给最大原创 2020-05-08 23:33:20 · 457 阅读 · 0 评论 -
字符串解码-遍历
字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 ...原创 2020-05-07 21:38:55 · 332 阅读 · 0 评论 -
字符串相乘-遍历
字符串相乘给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 num2 只...原创 2020-05-05 20:57:27 · 286 阅读 · 0 评论 -
单词的压缩编码-关联容器
单词的压缩编码给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A。例如,如果这个列表是 [“time”, “me”, “bell”],我们就可以将其表示为 S = “time#bell#” 和 indexes = [0, 2, 5]。对于每一个索引,我们可以通过从字符串 S 中索引的位置开始读取字符串,直到 “#” 结束,来恢复我们之前的单词列表。那么成功对给定单...原创 2020-05-05 14:22:07 · 200 阅读 · 0 评论 -
最长有效括号-动态规划
最长有效括号给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: “(()”输出: 2解释: 最长有效括号子串为 “()”示例 2:输入: “)()())”输出: 4解释: 最长有效括号子串为 “()()”解题思路:动态规划括号字串分两种:()()((()))初始化容器dp,从i=1开始遍历整个字符串s:1.查找()...原创 2020-05-04 22:46:01 · 197 阅读 · 0 评论