zoukankan      html  css  js  c++  java
  • 算法

    1. 给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。

    class Solution {
        public int missingNumber(int[] nums) {
            int temp = 0;
            for(int i = 0;i < nums.length;i++){
                temp = temp ^ (i + 1) ^ (nums[i]);
            }
            return temp;
        }

    运用位运算来完成,思路为temp ^ nums[ i ] ^ (i + 1),这里的temp值从0开始,因为nums 的值是从0开始,而(i + 1)则是为了取到自然数1,2,3,4,5...等

    运算规则如下:

    假如目标数组nums 值 为 0,1,2,4

    自然数对应为1, 2,3,4

    0 ^ 1 ^ 0 = 1

    1 ^ 2 ^ 1 = 2

    2 ^ 3 ^ 2 = 3

    3 ^ 4 ^ 4 = 3

    ————————————————
    版权声明:本文为CSDN博主「Light丶Long」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/lin140611/article/details/89979742

  • 相关阅读:
    swift 初见-4运算符与字符串操作
    IOS中数据持久化1-CoreData
    swift 初见-3
    swift 初见-2
    系统硬件1-短信,打电话
    swift 初见-1
    socket理解流程图
    文件操作方法fscanf
    Prim模板
    树剖求LCA模板
  • 原文地址:https://www.cnblogs.com/cjjjj/p/12405792.html
Copyright © 2011-2022 走看看