持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第22天,点击查看活动详情
前言
小白算法比较菜,希望能激励我每日更新,从leetcode第一题开始,2022年目标300题,记录从0到1的全过程!!
力扣第 315 场周赛-力扣
力扣第 315 场周赛-力扣
a了三题,第一题第二题比较简单,几分钟就做了。第三题没想到暴力可以过,真是想了半天,还wa了一次。第四题坐牢。
因为第三题耽误太长时间,排名贼靠后,又要掉分了!!
第314双周赛的排名
第88双周赛的排名
第313周赛的排名
2443. 反转之后的数字和
给你一个 非负 整数 num 。如果存在某个 非负 整数 k 满足 k + reverse(k) = num ,则返回 true ;否则,返回 false 。
reverse(k) 表示 k 反转每个数位后得到的数字。
示例 1
- 输入: num = 443
- 输出: true
- 解释: 172 + 271 = 443 ,所以返回 true 。
示例 2
- 输入: num = 63
- 输出: false
- 解释: 63 不能表示为非负整数及其反转后数字之和,返回 false 。
示例 3
- 输入: num = 181
- 输出: true
- 解释: 140 + 041 = 181 ,所以返回 true 。注意,反转后的数字可能包含前导零。
提示
0 <= num <= 105
代码
这里参考第二题计算反转数字的方法,暴力查询,居然可以过,,,,,真是无大语。直接3000多名就是因为这个。
class Solution {
public boolean sumOfNumberAndReverse(int num) {
for (int i = num; i >= 0; i--) {
StringBuilder sb = new StringBuilder();
sb.append(i);
sb = sb.reverse();
if (i + Integer.parseInt(sb.toString()) == num) {
return true;
}
}
return false;
}
}
耗时
class Solution {
public boolean sumOfNumberAndReverse(int num) {
if (num == 0) return true;
for (int i = 1;i < num;i++){
if (i + reverse(i) == num){
return true;
}
}
return false;
}
public int reverse(int x){
int res = 0;
while (x != 0){
res = res * 10 + x % 10;
x /= 10;
}
return res;
}
}
耗时可见,数字算法比字符串算法要快得多。
第一题连接如下-2441. 与对应负数同时存在的最大正整数
2441. 与对应负数同时存在的最大正整数
第二题连接如下-2442.反转之后不同整数的数目
2442.反转之后不同整数的数目
3.结束
又是掉分的一场周赛,第三题不应该困扰那么长时间的。我当时看好多人都做出来了,想的是,是不是直接return false或者是什么啊,还wa了一次。gogogo,刷题刷题,每天一道,三年1000道!!!!