Burkhardttt

Results 4 comments of Burkhardttt

东哥,有个问题实在想请教,楼上看了一圈没有发现和我有一样问题的,就吃香蕉那题,我之前用Python写的,二分用的是双闭区间没有任何问题。今天用Java刷的时候也是同样的逻辑,但是用双闭区间就出问题了。 ```java class Solution { public int minEatingSpeed(int[] piles, int h) { int left = 1; int right = 1; for (int pile : piles){ right = Math.max(right, pile); }...

@Tallminsome 你把我代码copy过去你那跑跑应该就可以了,配合我注释掉的System.out打印的那些信息,在测试用例piles = [805306368,805306368,805306368], h = 1000000000的时候我的eatingTime最终返回了一个负值,Java出现负值就是表示越界了,这个测试用例产生的正数超过了Java int的范围。我这次长记性了,Java的int范围是真的小,以后见到这种数字很大的测试用例就知道肯定是越界了,然后就可以focus on问题的根源了。右开区间能过我感觉也算运气,因为所有的测试用例没有越界的,我觉得肯定有那么一些测试用例能让你怎么写都过不了,直接用long才行。

@YuanzuoZhang 看我的第二版代码,二分改成左闭右开区间就过了。 我没有硬着头皮接着双闭区间了,但是因为是java int越界导致的问题,我想着可以强制类型转换一下把int换成long应该可以解决,以后debug看到测试用例的数字很大的时候就要往int越界这方面想了,java的int确实范围小动不动就越界。

关于矩阵旋转,我是否可以这样操作呢:顺时针旋转90°就是先沿主对角线镜像翻转,然后reverse;逆时针旋转90°就是先reverse,然后在沿主对角线镜像翻转。(主要是我想规避我理不清逆时针旋转里数组角标的问题哈哈哈哈)