python和for循环_Python和Java之间的For循环差异
在Python中,我们进⾏for循环,例如:
for i in range(len(nums))
在Java中:
我们有:
for (int i = 0; i < nums.length; i++)
这两个for循环是否相同?如果我们在for循环中进⾏了⼀些更改,那么说在for循环中我已经加了3,对于Java,接下来在for循环中我会是4?虽然Python仍然从2开始
Leetcode594.最长和谐⼦序列.
我们定义⼀个和谐数组,它的最⼤值和最⼩值之差恰好为1
⽤Java编写的解决⽅案如下:
nums=[1,3,2,2,5,2,3,7]
public class Solution {
public int findLHS(int[] nums) {
Arrays.sort(nums);
int prev_count = 1, res = 0;
for (int i = 0; i < nums.length; i++) {
python转java代码
int count = 1;
if (i > 0 && nums[i] - nums[i - 1] == 1) {
while (i < nums.length - 1 && nums[i] == nums[i + 1]) {
count++;
i++;
}
res = Math.max(res, count + prev_count);
prev_count = count;
} else {
while (i < nums.length - 1 && nums[i] == nums[i + 1]) {
count++;
i++;
}
prev_count = count;
}
}
}
}
我转换为Python:
nums=[1,3,2,2,5,2,3,7]
nums=sorted(nums)
prev_count=1
res=0
i=0
for i in range(len(nums)-1):
count=1
if i>0 and nums[i]-nums[i-1]==1:
while i
count+=1
i+=1
res=max(res,count+prev_count)
prev_count=count
else:
while i
count+=1
i+=1
prev_count=count
print (res)
在Java中
for (int i = 0; i < nums.length; i++) {
int count = 1;
if (i > 0 && nums[i] - nums[i - 1] == 1) {
while (i < nums.length - 1 && nums[i] == nums[i + 1]) { count++;
i++;
}
我在for循环内,所以我从添加的所有内容开始.
在Python中:
for i in range(len(nums)-1):
if i>0 and nums[i]-nums[i-1]==1:
while i
count+=1
i+=1
在i = 1之后,它仅适⽤于While循环,for循环仍从i = 2开始⽽不是4.
Java返回的答案是5,⽽python是4.我调试了代码,并且看起来Java启动了我添加的所有内容,⽽Python没有使⽤添加的i,并且总是从最后⼀个开始.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。