zoukankan      html  css  js  c++  java
  • 解决Runtime Error on LeetCode

    做题的时候又出了问题。
    写的 code 发生 runtime error

    之前就遇到过这种,submit的结果和run code的结果不一样。

    这说明代码存在隐患。

    • 第一种情况:初始化
      变量、指针没有初始化。
      自己找一下。

    • 第二种情况:越界
      有时会会是一种隐性错误。

    以下代码就会发生越界,

        int removeDuplicates(vector<int>& nums) {
            if(nums.size()<=1){
                return nums.size();
            }
            int i=1, j=1;
            while(j<nums.size()){
                while(nums[i]>nums[i-1]&&i<nums.size())
                    i++;
                while(nums[j]<=nums[i-1]&&j<nums.size()){
                    j++;
                }
                if(j<nums.size()){
                    nums[i]=nums[j];
                    i++;
                    j++;
                }
            }
            return i;
        }
    
    

    把其中的

                while(nums[i]>nums[i-1]&&i<nums.size())
                    i++;
                while(nums[j]<=nums[i-1]&&j<nums.size()){
                    j++;
                }
    

    改为

                while(i<nums.size()&&nums[i]>nums[i-1])
                    i++;
                while(j<nums.size()&&nums[j]<=nums[i-1]){
                    j++;
                }
    

    即可利用&&判断的short circuit解决该错误。

  • 相关阅读:
    Python-dict与set
    Python-实现对表插入百万条数据
    Python—元组tuple
    数据库查询
    python-操作MySQL数据库
    Python-类的继承
    Python-内置类属性
    Python-类的概念及使用1
    Python异常处理
    了解dto概念,什么是DTO
  • 原文地址:https://www.cnblogs.com/venusian/p/10836300.html
Copyright © 2011-2022 走看看