精华内容
下载资源
问答
  • java求众数

    2013-04-27 13:53:47
    java从文件中读取数据通过两种方法求众数和重数并将结果写入文件中
  • Java编程实现数组中的众数1.首先创建数据模型/*** @Author SuXiaojun* @Date 2021/3/13 16:26* @Version 1.0*/public class Count {private Integer value;//值private Integer count;//出现的次数public Count...

    Java编程实现数组中的众数

    1.首先创建数据模型

    /**

    * @Author SuXiaojun

    * @Date 2021/3/13 16:26

    * @Version 1.0

    */

    public class Count {

    private Integer value;//值

    private Integer count;//出现的次数

    public Count(Integer value, Integer count) {

    this.value = value;

    this.count = count;

    }

    public Integer getValue() {

    return value;

    }

    public Integer getCount() {

    return count;

    }

    public void setValue(Integer value) {

    this.value = value;

    }

    public void setCount(Integer count) {

    this.count = count;

    }

    }

    2.测试类及编程实现

    /**

    * @Author SuXiaojun

    * @Date 2021/3/13 16:18

    * @Version 1.0

    */

    import java.util.ArrayList;

    import java.util.List;

    /**

    * 找到数组中的众数

    * */

    public class test_3 {

    public static void main(String[] args) {

    int []array=new int []{1,1,1,2,2,3,3,3,3};

    System.out.println(fun(array));

    }

    public static int fun(int [] a){

    List list=new ArrayList<>();

    int max=1;

    int count_max=0;

    for (int i=0;i

    boolean falg=true;

    for(int j=0;j

    if(a[i]==list.get(j).getValue()){

    list.get(j).setCount(list.get(j).getCount()+1);

    falg=false;

    break;

    }

    }

    if (falg){

    list.add(new Count(a[i],1));

    }

    }

    for (int k=0;k

    if(list.get(k+1).getCount()>list.get(k).getCount()){

    max=list.get(k+1).getCount();

    count_max=k+1;

    }

    }

    return list.get(count_max).getValue();

    }

    }

    标签:count,Java,int,编程,list,value,众数,Integer,public

    来源: https://blog.csdn.net/m0_49760452/article/details/114752877

    展开全文
  • 求众数_java

    2019-07-22 14:05:24
    题目:求众数(力扣169) 题目描述: 给定一个大小为 n 的数组,找到其中的众数众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例 1: 输入: [3,2,3] ...

    题目:求众数(力扣169)
    题目描述:
    给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。

    你可以假设数组是非空的,并且给定的数组总是存在众数。

    示例 1:

    输入: [3,2,3]
    输出: 3
    示例 2:

    输入: [2,2,1,1,1,2,2]
    输出: 2

    解题思路:
    定义一个Map集合,key表示数组中出现的不同字符,val表示,该key出现的次数。最后对map进行遍历,当val> ⌊ n/2 ⌋ 时,输出此时的key,如果不存在应该输出-1。但是题中假设总是存在众数,其实还可以使用其他解法,但是Map是空间和时间复杂度相对较小的。

    代码实现:

    class Solution {
        public int majorityElement(int[] nums) {
            //定义一个map,存储nums中出现的数字及其出现的次数
    		Map<Integer,Integer> mp=new HashMap<>();
    		for(int n:nums) {
    			if(mp.containsKey(n)) {
    				mp.put(n, mp.get(n)+1);
    			}else {
    				mp.put(n, 1);
    			}
    		}
    		Set<Integer> keySet = mp.keySet();
    		Iterator<Integer> it = keySet.iterator();
    		while(it.hasNext()) {
    			int key=it.next();
    			int val=mp.get(key);
    			if(val>nums.length/2) {
    				return key;
    			}
    		}
    		return -1;
        }
    }
    
    展开全文
  • 解法一:使用HashMap,记录每个元素出现的次数,...import java.util.HashMap; import java.util.Map.Entry; class Solution { public int majorityElement(int[] nums) { int num = nums.length >> 1; H...

    解法一:使用HashMap,记录每个元素出现的次数,参见代码如下:

    import java.util.HashMap;
    import java.util.Map.Entry;
    class Solution {
        public int majorityElement(int[] nums) {
            int num = nums.length >> 1;
    
    		HashMap<Integer, Integer> map = new HashMap<>();
    		for (int i = 0; i < nums.length; i++) {
    			if (map.containsKey(nums[i])) {
    				map.put(nums[i], map.get(nums[i]) + 1);
    			} else {
    				map.put(nums[i], 1);
    			}
    		}
    
    		for (Entry<Integer, Integer> entry : map.entrySet()) {
    			if (entry.getValue() > num) {
    				return entry.getKey();
    			}
    		}
            
            return 0;
        }
    }

    解法二:由题目假设,一定存在众数,可以证明众数只有一个,那排序之后,第  ⌊ n/2 ⌋ 个元素便是需要寻找的众数,代码如下:

    private static void majorityElement(int[] nums) {
    		Arrays.sort(nums);
              //result便是需要寻找的众数
    		int result = nums[nums.length / 2];
    	}

    解法三:摩尔投票法。由题目假设,众数一定存在,所以数组中至少有一半的元素相同,参见代码如下:

    public int majorityElement(int[] nums) {
            // result表示众数,Count计数器
    		int result = 0, Count = 0;
    		for (int num : nums) {
    			if (Count == 0) {
    				
    				//重新选择众数
    				result = num;
    				Count++;
    			} else if (num == result) {
    				Count++;
    			} else {
    				Count--;
    			}
    		}
    		return result;
        }

    解法四:此解法利用到了位(Bit)操作来解,将中位数按位来建立,从0到31位,每次统计下数组中该位上0和1的个数,如果1多,那么我们将结果res中该位变为1,最后累加出来的res就是过半数了,参见代码如下:

    public int majorityElement(int[] nums) {
            int res = 0, n = nums.length;
    		for (int i = 0; i < 32; ++i) {
    
    			// ones表示第i位上1的个数,zeros表示第i为上为0的个数
    			int ones = 0, zeros = 0;
    			for (int num : nums) {
    
    				// 如果第i位上 1或者0的位数已经大于一半,便可确认该位上是1还是0
    				if (ones > n / 2 || zeros > n / 2)
    					break;
    
    				// 1 << i 表示1左移i位
    				if ((num & (1 << i)) != 0)
    					++ones;
    				else
    					++zeros;
    			}
    			if (ones > zeros)
    				res |= (1 << i);
    		}
    		return res;
        }

    参考资料:

    https://leetcode.com/problems/majority-element/discuss/51613/O(n)-time-O(1)-space-fastest-solution

    展开全文
  • leetcode java 169. 求众数

    2019-08-06 09:22:00
    求众数 给定一个大小为 n 的数组,找到其中的众数众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1...

    leetcode java 169. 求众数

    给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。

    你可以假设数组是非空的,并且给定的数组总是存在众数。

    示例 1:

    输入: [3,2,3]
    输出: 3

    示例 2:

    输入: [2,2,1,1,1,2,2]
    输出: 2

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/majority-element
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    解题思路:
    哈希表映射,键存储数组中的元素,值存储出现的次数

    具体思路:

    1. 创建一个HashMap,键和值都为整型
    2. 遍历给定数组,在map中取出这个键对应的值。
    3. 第一次放入的,计数为1。出现过的,计数累加。
    4. 每次设置元素的计数
    5. 返回计数大于n/2的元素
    class Solution {
        public int majorityElement(int[] nums) {
            Map<Integer, Integer> map = new HashMap<Integer, Integer>();
            for(int num : nums) {
                Integer count = map.get(num);
                if(count == null) {
                    count = 1;
                } else {
                    count++;
                }
                map.put(num, count);
                if(map.get(num) > (nums.length / 2)) {
                    return num;
                }
            }
            return 0;
        }
    }
    
    展开全文
  • java代码-LeetCode 169. 求众数
  • 描述 package simple; public class majorityElement { public static void main(String[] args) { int[] num1 = { 3, 2, 3 }; int[] num2 = { 2, 1, 1, 1, 2, 2, 2 };... int[] num3 = { 1 };...
  • Java实现 Leetcode 169 求众数

    万次阅读 多人点赞 2019-07-30 21:02:30
    public static int majorityElement(int[] nums) { int num = nums[0], count = 1; for(int i=1;i<nums.length;i++){ if(nums[i] == num) { count++; }...
  • java编程题,求众数

    2021-04-22 15:12:58
    求众数众数就是一个序列中出现次数最多的数字。如果不唯一,则输出小的那个值。给定第一个代表有几个数字。1<=n<=10^5,每个数字在 int 范围内。 输入样例: 8 10 3 8 8 3 2 2 2 输出样例: 2 ...
  • 求众数

    2019-08-22 10:21:03
    求众数的方法有很多,这里主要说明的是暴力破解法和hash表两种方法来实现。 什么是求众数?在leetCode上169题有这个定义。 给定一个大小为 n 的数组,找到其中的众数众数是指在数组中出现次数大于⌊ n/2 ⌋的...
  • Java实现 LeetCode 229 求众数 II(二)

    万次阅读 多人点赞 2020-02-29 21:34:57
    229. 求众数 II 给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。 示例 1: 输入: [3,2,3] 输出: [3] 示例 2: 输入: [1,1,1,3,3,2,2,2]...
  • title: leetcode-169-求众数(java|python) date: 2019-09-30 13:46:40 categories: leetcode tags: leetcode leetcode-169-求众数(java|python) 给定一个大小为 n 的数组,找到其中的众数众数是指在数组中...
  • Java】Leetcode求众数

    2019-09-03 11:11:55
    给定一个大小为 n 的数组,找到其中的众数众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,...
  • 求众数、229. 求众数 II。 一、求众数: 给定一个大小为 n 的数组,找到其中的众数众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例 1: 输入: ...
  • LeetCode169 求众数 给定一个大小为 n 的数组,找到其中的众数众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: ...
  • Java LeetCode169. 求众数

    2018-06-26 09:55:22
    题目描述:给定一个大小为 n 的数组,找到其中的众数众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3] 输出: 3示例 2:输入: [2,...
  • 给定一个大小为 n 的数组,找到其中的众数众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,2,2...
  • public int majorityElement(int[] nums) { if(nums.length == 1) return nums[0]; int sum = 1; Arrays.sort(nums); for(int i = 0;i < nums.length-1;i++){ if(nums[i] == nums[i+1]){ ... }

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,879
精华内容 751
关键字:

java求众数

java 订阅