LeetCode刷题之一:寻找只出现一次的数字

投简历的时候看到了个刷题网站,http://www.nowcoder.com/527604,就做了一套题,现记录下来。

题目为:

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?

解题思路为:其他数字都出现两次,只有一个数字出现一次,思考要用什么方法才能让那些出现两次的数字经过某个操作能相互消除呢?那就是异或操作

代码为:

public class Solution {
    public int singleNumber(int[] A) {
        int result = 0;
        for(int number: A)
            result = result ^ number;
        return result;
    }
}
时间: 2024-09-21 09:26:32

LeetCode刷题之一:寻找只出现一次的数字的相关文章

LeetCode 刷题之二:寻找二叉树的最大深度

题目为: Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 阶梯思路:对于这种题目最简单的方法就是递归操作了 代码为: /** * Definition for binary tree * public class TreeNod

Leetcode刷题记录:编码并解码短网址

题目要求 编写一个类,提供两个方法.一个可以将普通的网址编码成短网址,一个可以将短网址还原为普通网址. 参考题解 # 使用随机函数,生成短网址,保存在dict中,避免重复 import random import math import re class Codec: charbase = [x for x in "0123456789abcdefghijklmnopqrstuvwxyz"] urldict = {} longurldict = {} def get_random_ch

Leetcode刷题记录:构建最大数二叉树

题目要求,题目地址 给定一个不含重复数字的数组,最大二叉树构建规则如下: 1.根是数组中最大的数字 2.左边的子树是最大数字左边的内容 3.右边的子树是最大数字右边的内容 答案 class Solution(object): def constructMaximumBinaryTree(self, nums): """ :type nums: List[int] :rtype: TreeNode """ #print(max(nums)) #pr

LeetCode刷题之三:判断两个二叉树是否相同

题目为: Given two binary trees, write a function to check if they are equal or not. Two binary trees are considered equal if they are structurally identical and the nodes have the same value. 解题思路:这种题目也是递归操作简单 代码为: /** * Definition for binary tree * pub

[LeetCode] Find Duplicate Subtrees 寻找重复树

Given a binary tree, return all duplicate subtrees. For each kind of duplicate subtrees, you only need to return the root node of any oneof them. Two trees are duplicate if they have the same structure with same node values. Example 1:  1 / \ 2 3 / /

c++问题-在acm上刷题老是通不过,求大神指点一二,到底问题出在哪里。不胜感激!!!

问题描述 在acm上刷题老是通不过,求大神指点一二,到底问题出在哪里.不胜感激!!! #include #include using namespace std; int main() { int T; int k,t=0; int i, j, n1, n2; char a[1010], b[1010], c[1015]; string d[20], e[20], f[20]; cin>>T; for(k=1; k<=T; k++) { cin>>a>>b; d[

bug-这是我写的表达式求值,在编译器中运行是对的,但在刷题系统中却说是错,求打什么呢帮我找找Bug

问题描述 这是我写的表达式求值,在编译器中运行是对的,但在刷题系统中却说是错,求打什么呢帮我找找Bug 2C #include""stdio.h""#include""stdlib.h""#include""malloc.h""#include""string.h""#include""math.h""#de

leetcode第一题java代码报错。求原因?

问题描述 leetcode第一题java代码报错.求原因? package com.hust.ali.test; import java.util.*; /** 给定一个整数数组,发现两个数字,使得它们添加到一个特定的目标数. 函数twoSum应返回两个数字,使得它们加起来的目标,其中索引1必须小于索引2的所有. @author Cat */ public class TwoNumSum { /* @param args */ public static void main(String[] a

智学网APP怎么刷题 刷题教程分享

给各位智学网软件的使用者们来详细的解析分享一下刷题的教程. 教程分享:   1.目前智学网APP没有刷题的功能 2.而且智学网APP系统有较强的检测,一发现刷题嫌疑就自动封号处理 3.小编建议大家还是按规则要求来做题,不能因小失大 好了,以上的信息就是小编给各位智学网的这一款软件的使用者们带来的详细的刷题的教程解析分享的全部内容了,各位看到这里的软件使用者们,小编相信你们现在那是非常的清楚刷题的方法了吧,那么大家就快去按照小编上面教给大家的方法自己去刷题吧.