1.python 解法:从第一个元素开始执行pop 然后查询是否仍然有这个元素,空间复杂度O(n)
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param numbers int整型一维数组 # @return int整型 # class Solution: def duplicate(self , numbers ): # write code here numbers.sort() for k in range(len(numbers)-1): if numbers[k] == numbers[k+1]: return numbers[k] return -1
2.java解法:使用set
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param numbers int整型一维数组
* @return int整型
*/
public int duplicate (int[] numbers) {
// write code here
Set<Integer> num = new HashSet<Integer>();
for(int i = 0; i < numbers.length; i++){
if(num.contains(numbers[i])){
return numbers[i];
}
else{
num.add(numbers[i]);
}
}
return -1;
}
} package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param numbers int整型一维数组
* @return int整型
*/
import "fmt"
func duplicate( numbers []int ) int {
// write code here
nums := make(map[int]int)
fmt.Println(nums)
for _,num := range numbers{
// count := nums[num]
// fmt.Println(nums[num])
// fmt.Println(count)
if nums[num] == 1{
return num
}
nums[num] = 1
}
return -1
} 
京公网安备 11010502036488号