算法刷题提醒

dummy仿制品

如下链表遍历看起来更优雅

for (ListNode node = dummy; node != null; node = node.next) {

​      prefix += node.val;

​      seen.put(prefix, node);}

做链表的时候 习惯用一个dummy dummy.next=head 用这种而不是用dummy=head 这样

2^31 这是4个字节的 int类型应该就是 2147483648 2e9

java long 8个字节

编程遇到需要取模的,计算的时候可以先取了 直接每次计算取结果 的模 避免后面超出空间搞得尴尬
如果前面不取的话,就算开了long 后面也可能超出long的上限 然后取模就显得很奇怪。

和的模 模的和 应该是一样的

dp动态规划的 如果只需要前面几个数的结果,可以不用开数组,直接用几个变量轮动就行了,节省空间

如果leetcode想要的函数参数和给的模板不一样,可以自己开一个新的,然后调用就行了;

hasNext和hasNextLine的区别
二者都是用于判断“有无键盘输入”的,有则返回true,没有则阻塞!一定记住是阻塞而不是返回false,很多人都说是返回false,但你查源码会发现是不会返回false的,他会让你一直阻塞在判断阶段,二者只是在细节上有不同

hasNext()方法会判断接下来是否有非空字符.如果有,则返回true,没有则阻塞。例如一直敲回车相当于一直判断为空字符,但是不会返回false,而是一直阻塞在判断阶段,直到你输入了非空字符
hasNextLine() 方法会根据行匹配模式去判断接下来是否有一行(包括空行),如果有,则返回true。这个没什么特别的,只要是你敲了回车那都是true并且不会阻塞
在这里插入图片描述
java处理长期不断输入的方法

 Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int a = in.nextInt();
            int b = in.nextInt();
            System.out.println(a + b);
        }

在这里插入图片描述

数组填充数据
Arrays.fill(dist, Integer.MAX_VALUE);

类型转化相关的
将十六进制字符串转化为十进制整数 有0x的

Integer.parseInt(str.substring(2),16)

没有的就不用截取了

//将一个任意格式的数字转化为十六进制的字符串

​ String s= Integer.toHexString(a);

会自动打印十进制

int a=0x123;

​ System.out.println(a);

整型转化字符串

String s=String.valueOf(a);

​ System.out.println(s);

10
想要在main函数里测试 这样是相对比较简单的,只针对leetcode的题目
public static void main(String[] args) {
Solution solution=new Solution();
solution.cuttingRope(15);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值