zoukankan      html  css  js  c++  java
  • leetcode- Majority Element

    Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.

    You may assume that the array is non-empty and the majority element always exist in the array.

    题目含义:找到一个数组中,个数超过总个数一半的那个数!!!!

    注意:1、数组非空  2、这个数一定存在!!!!

    package leetcode;
    //这道题目是有约束的,该数组中一定存在这样的数,才能用Moore's Voting Algorithm!
    //否则找出的结果不正确!!
    //即要先判断是否存在,然后再找~
    //Moore's Voting Algorithm:http://www.cs.utexas.edu/~moore/best-ideas/mjrty/index.html
    public class MajorityElement {
        public int majorityElement(int[] nums) {
            int count = 0;
            int majorityElement = nums[0];              //先令第一个数为这个marjor
            for (int x : nums) {
                if (x == majorityElement) {
                    ++count;
                } else {
                    --count;
                }
                if(count == 0){
                    majorityElement = x;
                    count = 1;
                }

            }
            return majorityElement;
            /* Arrays.sort(nums);                                //简单方法,但是排序,时间复杂度 nlogn ;可以做
                return nums[nums.length/2];*/
        }

        public static void main(String[] args) {
            // TODO Auto-generated method stub

        }

    }

    态度决定行为,行为决定习惯,习惯决定性格,性格决定命运
  • 相关阅读:
    caffe学习
    阅读文献的三大问题:坐不住,记不住,想不开
    第五章 MySQL函数
    第四章 MySQL数据类型和运算符
    第三章 数据表的基本操作
    第二章 数据库的基本操作
    EXCEL的导入导出
    JAVA 通过位运算进行简单的加密
    JAVA 从控制台接收输入的字符
    JAVA Web JS
  • 原文地址:https://www.cnblogs.com/neversayno/p/5395126.html
Copyright © 2011-2022 走看看