竹沥半夏2002
竹沥半夏2002
全部文章
题解
归档
标签
去牛客网
登录
/
注册
竹沥半夏2002的博客
全部文章
/ 题解
(共11篇)
题解 | #数字序列中某一位的数字#
这道题之前在力扣上练习过,大致思路记得,具体程序得自己再编辑一遍。于是,开始寻找规律,位数weishu 区间数字的个数period 以及 每长一位的起点start(1 10 100这种) weishu=1 start=1 period=9(记得从9 99 999 开始,不要从10 100开始,否则容...
C++
2022-04-11
0
314
题解 | #跳台阶扩展问题#
思考了很久,以为是什么动态规划,深度优先搜索啥的,看到标题就~ 跑偏了 后来,自己一种种情况画图,一遍遍走,发现都是在前一种情况的基础上,新增一步只有两种可能性:可以和dp[i-1]的最后一步连着,也可以和dp[i-1]的最后一步断开,就这两种,即*2 class Solution { public...
C++
2022-04-01
0
284
题解 | #不用加减乘除做加法#
不能使用四则运算,就是考虑位运算,那么就得考虑位运算如何做加法呢 举例: 100+101=4+5=9=1001 100 ^ 101 = 001 (此时没有进位,只是单纯0+0 0+1 1+0) 100 & 101 = 100 (此时标志位1的就是要进位的,那么既然是进位,就得再<&l...
C++
2022-04-01
0
318
题解 | #Nim游戏#
这一题看着“博弈”这个标签觉得很难,但是分析之后发现室友规律的,桌子上有1 2 3个石头的时候,都可以先声夺人,但是4的时候无论怎么办都不行;一旦超过四,比如5个 只要先拿1个 把4个的尴尬局面留给对方,那么对方也会陷入一样的困境;如果拿到六个 只要先拿2个 同理 于是,一开始的想法是: class...
C++
2022-03-27
0
432
题解 | #跳跃游戏(一)#
这一题被我和前面一题“几步可以从头跳到尾”思路混淆了,道理上说两个题目表达的意思是一样的,但是不知怎么滴我都转不出来了,按照前面的思路写出来的程序如下: class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的...
C++
2022-03-25
0
296
题解 | #01背包#
背包的系列问题,从01背包开始 动态规划与分治法类似,都是把大问题拆分为小问题,通过寻找大问题与小问题之间的递推关系,解决一个个小问题,最终达到解决原问题的效果。不同的是,分治法在子问题和子子问题上被重复计算了多次,而动态规划具有记忆性,通过填表把已经解决的子问题的答案记录下来,在新问题里需要用到的...
C++
2022-03-21
0
529
题解 | #数组中只出现一次的数(其它数出现k次)#
一个周末做到这个题目,当时看到位运算,脑袋一疼,不擅长的东西啊 于是一开始用了unordered_map来计数 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * ...
C++
2022-03-20
0
311
题解 | #兑换零钱(一)#
看到本题的标签是动态规划,就意味着最重要的是归纳出动态规划的关系式 设想一个dp数组,dp[1]表示组成1元需要的纸币,dp[10]表示组成10元需要的纸币,dp[100]表示组成100元需要的纸币 那么我们定义的时候vector dp(aim+1,max) 这里的max是最大方法,那么最大方法是多...
C++
2022-03-19
0
280
题解 | #二进制中1的个数#
这道题我是为了让自己加深映像,分析一下C++题解,因为我一开始的想法十分复杂: 通过前面一道题solve()函数将数字M以N进制形式表示,先获取二进制字符串 然后根据返回的字符串第一个字符是不是‘-’符号 进行分类讨论 如果不是负号 直接数就可以 如果是负号 那么先得到反码,再想办法得到补码 缺点...
C++
2022-03-19
0
302
题解 | #单链表的排序#
链表的排序一般有插入、冒泡、选择、快排等方式,今天就想自己实现一个,不参考任何其他的程序,一开始想的是按照冒泡排序吧,每轮找到一个最大的,然后把它放到尾巴,再让end指针往前移动,只要head!=end 没有重合,说明排序没有结束,那么继续 然后遇到的问题是,这个head是有数据的,不是一般所指的空...
C++
2022-03-17
0
349
首页
上一页
1
2
下一页
末页