665. 非递减数列(中等)-3.代码实现

3.1 Python

class Solution:
    def checkPossibility(self, nums: List[int]) -> bool:
        N = len(nums)
        ans = 0
        for i in range(1, N):
            if ans > 1:
                break
            if nums[i] < nums[i-1]:
                ans += 1
                # 到底是更新nums[i]还是nums[i-1]呢
                if i==1 or nums[i] >= nums[i-2]:
                    nums[i-1] = nums[i]
                else:
                    nums[i] = nums[i-1]
                
        return ans <= 1

在这里插入图片描述

3.2 Java

class Solution {
    public boolean checkPossibility(int[] nums) {
        int ans = 0;
        for (int i=1; i< nums.length; i++){
            if (ans > 1){
                break;
            }
            if (nums[i] < nums[i-1]){
                ans++;
                if (i == 1 || nums[i] >= nums[i-2]){
                    nums[i-1] = nums[i];
                }else{
                    nums[i] = nums[i-1];
                }
            }
        }
        return ans <= 1;
    }
}

在这里插入图片描述

  执行用时不必过于纠结,对比可以发现,对于python和java完全相同的编写,java的时间一般是优于python的;至于编写的代码的执行用时击败多少对手,执行用时和网络环境、当前提交代码人数等均有关系,可以尝试完全相同的代码多次执行用时也不是完全相同,只要确保自己代码的算法时间复杂度满足相应要求即可,也可以通过点击分布图查看其它coder的code

上一篇:数据结构--图


下一篇:android 异屏同显---学习笔记