• [LeetCode136]Single Number寻找一个数组里只出现一次的数


    题目:

    Given an array of integers, every element appears twice except for one. Find that single one.

    Note:
    Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

    中文(给定一个整数的数组,每个整数都出现了两次,只有一个出现了一次,找到它  建议不使用额外的内存空间)

    思路:利用^运算符  

    二元 ^ 运算符是为整型和 bool 类型预定义的。对于整型,^ 将计算操作数的按位“异或”。对于 bool 操作数,^ 将计算操作数的逻辑“异或”;也就是说,当且仅当只有一个操作数为 true 时,结果才为 true。

    代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace LeetCode
    {
        class SingleNumberSolution
        {
            //static void Main()
            //{
            //    SingleNumberSolution s = new SingleNumberSolution();
            //    int[] nums = {1, 1, 2, 3, 3, 4, 4};
            //    Console.WriteLine(s.SingleNumber(nums));
            //}
    
            public int SingleNumber(int[] nums)
            {
                int singleNum = nums[0];
                for (int i = 1; i < nums.Length; i++)
                {
                    singleNum ^= nums[i];
                }
                return singleNum;
            }
        }
    }
  • 相关阅读:
    数组的练习
    java基础类和对象
    字符串的练习
    二分查找算法
    Python-charle+fiddler
    python-week1-postman+jemter-soapUI
    OBB盒的实现
    Bounding volume
    OSG动画学习
    OSG 自定义数据类型 关键帧动画
  • 原文地址:https://www.cnblogs.com/zhangbaochong/p/5058315.html
Copyright © 2020-2023  润新知