- 博客(6)
- 收藏
- 关注
原创 LeetCode 740.删除并获得点数(Java)
我们先简单分析一下,这个给出的数组nums的每个数字的顺序貌似和题目要求输出的答案是无关的,比如[4,3,2] 和[2,3,4] 最后的结果都是 6,那是因为只要任意选择了某一个数字,其他所有的相同的数字都会变成点数一起删掉,那既然发现了这个特性,该怎么去使用呢,这时候聪明的我们立马就想到了,我们先把所有元素从小到大排序,然后直接把所有相同的数加起来变成最后的点数就OK了,比如示例二[2,2,3,3,3,4]我们就可以变成[4,9,4],这样在我们获取点数的时候就可以直接相加,省去部分步骤了。
2025-09-23 19:53:01
331
原创 贪心算法 排队打水问题 (Java)
假设有ABCD四个人,两个水龙头,总时间 = A的时间 + B的时间 + C的时间 + D的时间,而不是看谁最晚结束的时间。在最少的时候这种情况下,抽象到整个问题,第一次打水的r个人不需要排队,所以总时间就是他们的和,从第r+1个人开始就需要排队,排队时间就是前面的人的打水时间,这一个人的打水总时间即 T[i] + T[i-r] ,最后再把所有人的时间加到一起就是答案了。可以看出如果先让打水时间少的人打水,那么后面的人排队的时间就会变少,即让所有人的打水时间从小到大排个序,再进行打水就是最少的时候。
2025-09-19 22:23:22
365
原创 Leetcode 198.打家劫舍(Java)
5. 当 n==4 的时候,我们会发现如果还按照之前的枚举思路往后推,这个问题就开始变得特别复杂起来了,那么假设我们现在站在第 4 间房子面前,我们有两个选择,偷第 4 间或者是不偷第 4 间,如果偷第 4 间房子,那么我们前 4 间房子的最大收益 f(4) 就是前两间房子的最大收益f (2) +第4间房子的收益;这个时候我们抽象到第i间房子,我们依旧是两个选择,如果我们偷了第i间房子,那么我们现在的最大收益就是前i-2个房子的最大收益+第i间房子的收益;那么此时前一间房子的最大收益为 f(1)
2025-09-19 20:57:05
242
原创 双非本科大一新生勇闯计算机专业
a. 本人是一位双非本科计算机专业的学生,和计算机的学生的刻板印象来比,本人性格开朗活泼,属于ENTP,善于察言观色,很喜欢和别人说话,热爱生活,经常鼓励他人,传播正能量,但到工作学习时间会变得很严肃。c. 我打算每天花更多的时间在学习编程上,当然,平常听歌打游戏也会占用部分时间,我不是那种可以一天到晚做同一个事的人(打游戏也不行)。b. 编程的目标是为了找到高薪工作,找到更多热爱生活的朋友。d.我没有特别想去的IT公司,高薪就行(doge)
2024-11-28 12:48:05
197
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅