每日一题 【每日一题】数组之三-Python

Jack · 2021年08月18日 · 最后由 lework 回复于 2021年12月08日 · 110 次阅读
本帖已被设为精华帖!
  1. 问题描述: 给定一个数组 A,其中除了 2 个数,其他均出现 2 次,请找到不重复的 2 个数并返回。
  2. 问题示例: 给定: A = [1, 2, 5, 5, 6, 6] 返回: [1, 2]

给定: A = [3, 2, 7, 5, 5, 7] 返回: [2, 3]

Jack 将本帖设为了精华贴 08月18日 21:07

参考代码:

class Solution:
    def theTwoNumbers(self, a):
        ans = [0, 0]
        for i in a:
            ans[0] = ans[0] ^ i
        c = 1
        while c & ans[0] != c:
            c = c << 1
        for i in a:
            if i & c == c:
                ans[1] = ans[1] ^ i
        ans[0] = ans[0] ^ ans[1]
        return ans
A=[3, 2, 7, 5, 5, 7]
B=[]
num=0
for x in range(len(A)):
    num=0
    for y in range(len(A)):
        if A[x] == A [y]:
            num=num+1
            print(num)
    if num <2:
        B.append(A[x])
print(B)

go

package main

import (
    "fmt"
)

func main() {
    /*
    问题描述: 给定一个数组 A,其中除了 2 个数,其他均出现 2 次,请找到不重复的 2 个数并返回。
    问题示例: 给定: A = [1, 2, 5, 5, 6, 6] 返回: [1, 2]
    给定: A = [3, 2, 7, 5, 5, 7] 返回: [2, 3]
    */

    var (
        num = 0
        a   = []int{3, 2, 7, 5, 5, 7}
        b   []int
    )

    for i := 0; i < len(a); i++ {
        num = 0
        for ii := 0; ii < len(a); ii++ {
            if a[i] == a[ii] {
                num++
            }
            if num >= 2 {
                continue
            }
        }

        if num < 2 {
            b = append([]int{a[i]}, b...)
        }

    }

    fmt.Println(b)
}

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册