• 268. Missing Number


        /*
         * 268. Missing Number 
         * 2016-6-24 by Mingyang
         * 占位问题2,多次遇到过了,注意nums[i]不能大于nums.length, 
    * 并且注意几个特殊条件,比如只有一个0,只有一个1 * 这里是01234所以我们index从0开始的 * 注意换位不能用一个temp来换哦,nums[i]随时在变化!!!只能用一个函数来
    */ public static int missingNumber(int[] nums) { if (nums == null || nums.length == 0) return 0; int res = 0; boolean find = false; for (int i = 0; i < nums.length; i++) { if (nums[i] != i && nums[i] < nums.length) { swap1(nums, nums[i], i); i--; } } for (int i = 0; i < nums.length; i++) { if (nums[i] != i) { return i; } } return nums[nums.length - 1] + 1;
    //这个就是来预防只有一个0或者最后一位缺乏的情况! } //这个题目大神的做法是位运算:因为假如只有01235-> //结果是0^1^2^3^5^0^1^2^3^4^5 剩下的就是4,因为index 4已经出现了 public int missingNumber1(int[] nums) { int res=nums[0]; for(int i=1;i<nums.length;++i) res^=nums[i]; for(int i=0;i<=nums.length;++i) res^=i; return res; }
  • 相关阅读:
    进程和线程的简单实例
    OpenGL3D演示程序
    c++中dll和lib
    OS锁机制,各种critical section、mutex、实现基础
    dll导出def出错
    负载均衡策略:
    lua读写文件
    C++ Singleton
    Lua模式匹配
    linux 下查找不符合条件的文件并cp
  • 原文地址:https://www.cnblogs.com/zmyvszk/p/5616028.html
Copyright © 2020-2023  润新知