zoukankan      html  css  js  c++  java
  • 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; }
  • 相关阅读:
    linux启动流程
    监控命令
    ansible组
    公钥和秘钥
    SSH协议介绍
    Java并发编程笔记之ThreadLocal内存泄漏探究
    【死磕 Java 集合】— ConcurrentSkipListMap源码分析
    GraphX介绍
    Storm内部的消息传递机制
    JanusGraph Server配置
  • 原文地址:https://www.cnblogs.com/zmyvszk/p/5616028.html
Copyright © 2011-2022 走看看