剑指 Offer 03. 数组中重复的数字(暴力解法和原地置换和【哈希表】数组中重复的数字java完整代码)

这篇博客展示了三种不同的方法来找出整数数组中重复的数字:暴力解法、原地置换和使用哈希表。Java代码分别演示了这三种方法,其中原地置换和哈希表的方法更高效。JavaScript实现也采用了哈希表,简洁且效率高。
摘要由CSDN通过智能技术生成

数组中重复的数字暴力解法和原地置换java完整代码

题目描述

在这里插入图片描述

java语言暴力解法

package jianzhi;



public class chongfushuzi {

	public int findRepeatNumber(int[] nums) {
        int i,j;
        int len=nums.length;
        for(i=0;i<len-1;i++){
            for(j=i+1;j<len;j++){
                if(nums[i]==nums[j]){
                	return nums[i];
                }
            }
        }return nums[i];
    }
	public static void main(String[] args) {
		chongfushuzi heap1 = new chongfushuzi();
		int nums[]={0, 1, 2, 3, 4, 11, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
		int a;
		a=heap1.findRepeatNumber(nums);
		System.out.print(a);
	  }
}

java语言原地置换

package jianzhi;

public class chongfushuzi1 {
	public int findRepeatNumber(int[] nums) {
        int temp;
        for(int i=0;i<nums.length;i++){
            while (nums[i]!=i){
                if(nums[i]==nums[nums[i]]){
                    return nums[i];
                }
                temp=nums[i];
                nums[i]=nums[temp];
                nums[temp]=temp;
            }
        }
        return -1;
    }
	public static void main(String[] args) {
		chongfushuzi heap1 = new chongfushuzi();
		int nums[]={0, 1, 2, 3, 4, 11, 3, 7, 8, 9, 10, 11, 12, 13, 14, 15};
		int a;
		a=heap1.findRepeatNumber(nums);
		System.out.print(a);
	  }
}

java-hash表

package jianzhi;

import java.util.HashMap;
import java.util.Map;

public class chonghushuzi2 {
	 public int findRepeatNumber(int[] nums) {
	        Map<Integer, Integer> hashmap = new HashMap<>();
	        for(int num : nums){//含义:遍历数组nums中的所有元素,循环体中nums[i]用num替代
	            if(hashmap.containsKey(num)){
	                return num;
	            }
	            hashmap.put(num, 0);
	        }
	        return -1;
	    }
	 public static void main(String[] args) {
			chongfushuzi heap1 = new chongfushuzi();
			int nums[]={0, 1, 2, 3, 4, 11, 3, 7, 8, 9, 10, 11, 12, 13, 14, 15};
			int a;
			a=heap1.findRepeatNumber(nums);
			System.out.print(a);
		  }
}

javascript-hash表

var findRepeatNumber = function(nums) {
    let map = new Map();
    for(let i of nums){
        if(map.has(i)) return i;
        map.set(i, 1);
    }
    return null;
};
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值