首页 > 试题广场 >

找重复

[编程题]找重复
  • 热度指数:259 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。

输入描述:
一串数字,用逗号分隔


输出描述:
true

false
示例1

输入

1,2,3,8,3,2,6

输出

true
示例2

输入

1,2,3

输出

false
import java.util.HashMap;
import java.util.Scanner;
public class Main {
    public static boolean repeatOrNot(int[] nums) {
        HashMap<Integer,Integer> map = new HashMap<>();
        for(int i = 0; i < nums.length; i++) {
            if(map.containsKey(nums[i])) {
                return true;
            } else {
                map.put(nums[i], 1);
            }
        }
        return false;
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.next();
        String[] strings = str.split(",");
        int[] nums = new int[strings.length];
        for(int i = 0; i < nums.length; i++) {
            nums[i] = Integer.parseInt(strings[i]);
        }
        System.out.println(repeatOrNot(nums));
    }
}

发表于 2020-05-31 14:09:56 回复(0)
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String[] s=in.nextLine().split(",");
        ArrayList<String> list = new ArrayList<>();

        for (int i = 0; i < s.length; i++) {
            if(!list.contains(s[i])){
                list.add(s[i]);
                if(i==s.length-1){
                    System.out.println("false");
                }
            }else{
                System.out.println("true");
                break;
            }
        }
    }
}

发表于 2020-07-31 20:46:31 回复(0)
import java.util.Scanner;
import java.util.HashSet;
public class Main{
     
    public static void main(String[] args){
        System.out.println(helper());
    }
     
    public static boolean helper(){
        Scanner sc = new Scanner(System.in);
        String line = sc.nextLine();
        String[] words = line.split(",");
        HashSet<String> set = new HashSet<>();
        for(String word : words){
            // 至少出现两次则返回true
            if(set.contains(word)){return true;}
            // 一次也没有出现则将元素加入set中
            else{set.add(word);}
        }
        // 遍历完都没有元素至少出现两次,则证明每个元素都不相同;返回false
        return false;
    }
 
}

发表于 2020-09-09 12:25:50 回复(0)
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        String[] db = str.split(",");
        int [] dp = new int[db.length];
        for (int i = 0; i < db.length; i++) {
            dp[i] = Integer.parseInt(db[i]);
        }
        boolean flag = false;
        for (int i = 0; i < dp.length; i++) {
            int cur = dp[i];
            int cur_index = i - 1;
            while (cur_index >= 0 && dp[cur_index] != cur) {
                cur_index--;
            }
            if (cur_index >= 0) {
                flag = true;
                break;
            }
        }
        System.out.println(flag);
    }
 
}
第i个数和前面0到i-个数比,找到结束返回
发表于 2020-08-26 10:22:21 回复(0)
A = list(map(int, input().split(',')))
b = set(A)
if len(A) == len(b):
    print('false')
else:
    for each in b:
        if A.count(each) >=2:
            print('true')
            break

发表于 2020-01-03 16:51:45 回复(0)
s = input()
li = eval(s) 
count = 0
for i in range(len(li)):
 for j in range(i+1,len(li)):
  if li[i] == li[j]:
   count += 1
   
if count==0:
 print('false')
else:
 print('true')
编辑于 2019-12-19 17:22:11 回复(0)

迭代放入set,再判断size;map put时,key已存在返回非空;排序,再判断前后是否相等


发表于 2019-12-15 20:32:20 回复(1)