zoukankan      html  css  js  c++  java
  • [LeetCode]136、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?

    思路:

    给定一个数组。只有一个数只出现了一次,别的都是两次,找出它来。
    简单数学方法:XOR方法,异或。 A XOR A = 0 A XOR B = 1, A XOR 0 = A 且具有可交换性
    如:(2^1^4^5^2^4^1) => ((2^2)^(1^1)^(4^4)^(5)) => (0^0^0^5) => 5
    定义一个result = 0 与每个数异或计算,然后得出的结果就是那个单独的数。
    如果用正常思路时间复杂度为O(n^2),***提交会超时。
    思路是对每一个元素进行遍历查找是否存在,没有则返回它

     1 public class Solution136 {
     2     public int singleNumber(int[] nums) {
     3         //异或方法解决:
     4         /*int result = 0;
     5         for(int i = 0; i < nums.length; i++){
     6             result = result ^ nums[i];
     7         }
     8         return result;*/
     9         int result=0;
    10         int j,i;
    11         int n = nums.length;
    12         for(i = 0;i < n;i++)
    13         {
    14             for(j = 0;j < n;j++)
    15             {
    16                 if(i == j)
    17                     continue;
    18                 else if(nums[i] == nums[j])
    19                     break;
    20                     else continue;
    21             }
    22             
    23             if(j == n)
    24                 return nums[i];
    25         }
    26         return result;
    27         
    28     }
    29     public static void main(String[] args) {
    30         // TODO Auto-generated method stub
    31         int[] nums = {2,1,4,5,2,4,1};
    32         Solution136 solution136 = new Solution136();
    33         System.out.println(solution136.singleNumber(nums));
    34     }
    35 
    36 }
  • 相关阅读:
    主线程和子线程的区别
    正则表达式 之 常用实例
    Asp.Net 之 未能加载文件或程序集 system.web.extensions 解决方法
    .Net 与 Java 的服务接口相互调用
    C# 之 SqlConnection 类
    ADO.Net 之 数据库连接池(一)
    C# 之 DataReader 和 DataSet 的区别
    Asp.Net 之 缓存机制
    IIS 之 失败请求跟踪规则
    IIS 之 HTTP错误信息提示
  • 原文地址:https://www.cnblogs.com/zlz099/p/8184728.html
Copyright © 2011-2022 走看看