当前位置: 首页 > news >正文

申请网站域名要多少钱所有网站收录入口

申请网站域名要多少钱,所有网站收录入口,网站后台传不了图片,工程公司logo图片大全集这个题非常简单&#xff0c;解法有很多种&#xff0c;我用的是HashMap记录每个元素出现的次数&#xff0c;只要次数大于数组长度的一半就返回。下面是我的代码&#xff1a; class Solution {public int majorityElement(int[] nums) {int len nums.length/2;HashMap<Integ…

这个题非常简单,解法有很多种,我用的是HashMap记录每个元素出现的次数,只要次数大于数组长度的一半就返回。下面是我的代码:

class Solution {public int majorityElement(int[] nums) {int len = nums.length/2;HashMap<Integer,Integer> map = new HashMap<Integer, Integer>();for(int i=0;i<nums.length;i++){int key = nums[i];if(!map.containsKey(key)){map.put(key,1);if(map.get(key) > len) return key;}else{map.put(key,map.get(key)+1);if(map.get(key) > len) return key;}}return -1;}
}

题解还有一种更牛逼的解法,把数组排序,然后返回数组中间的那个数就行,因为如果这个数出现的次数大于数组长度的一半的话,排完序后数组中间那个数一定是它。

class Solution {public int majorityElement(int[] nums) {Arrays.sort(nums);return nums[nums.length/2];}
}

还有用分治法的,如果一个数是这个数组的总数,那么把这个数组分成两个子数组后,这个数至少是其中一个数组的众数,然后选出两个众数中真正的众数即可。可以采用递归的方法,不断把数组分成两个子数组,直到子数组的长度为1,合并左右两个数组,然后再不断合并,最后就可以找到整个数组的众数了

class Solution {private int countInRange(int[] nums, int num, int lo, int hi) {int count = 0;for (int i = lo; i <= hi; i++) {if (nums[i] == num) {count++;}}return count;}private int majorityElementRec(int[] nums, int lo, int hi) {// base case; the only element in an array of size 1 is the majority// element.if (lo == hi) {return nums[lo];}// recurse on left and right halves of this slice.int mid = (hi - lo) / 2 + lo;int left = majorityElementRec(nums, lo, mid);int right = majorityElementRec(nums, mid + 1, hi);// if the two halves agree on the majority element, return it.if (left == right) {return left;}// otherwise, count each element and return the "winner".int leftCount = countInRange(nums, left, lo, hi);int rightCount = countInRange(nums, right, lo, hi);return leftCount > rightCount ? left : right;}public int majorityElement(int[] nums) {return majorityElementRec(nums, 0, nums.length - 1);}
}

还有一种Boyer-Moore 投票算法,他是先选一个候选数,先把他的次数定为0,如果下一个数和他一样次数加一,如果不一样次数减一,如果次数为0,侯选数换成下一个数,最后的侯选数就是众数。

class Solution {public int majorityElement(int[] nums) {int count = 0;Integer candidate = null;for (int num : nums) {if (count == 0) {candidate = num;}count += (num == candidate) ? 1 : -1;}return candidate;}
}

http://www.yayakq.cn/news/211884/

相关文章:

  • 省建设干部培训中心网站现代装修风格2022年
  • 家电维修怎么自己做网站化妆品网站建设可行性分析
  • 建立一个个人介绍网站网络销售管理条例
  • 照片编辑软件贺州网站seo
  • 如何建设提卡网站招商外包公司排名
  • 制作外贸网站公司企业网站设计过程中
  • 网站优化 流量怎么建设一个手机网站
  • php网站建设教程旅游网站的功能及建设
  • 国家排污许可网站台账怎么做专业网站建设网页
  • 迅速建设企业网站适合网站开发工程师的公司
  • 郑州高端模板建站网站被人做跳转改如何举报
  • 西安网站seo优化公司自有服务器 建网站
  • 公司网站开发费用怎么做账360推广登录入口
  • 鸿鑫建设集团有限公司网站如何做徽商网站
  • 想在公司局域网做建网站网站设计过程
  • 网站留言系统是怎么做的个人网站的重要性
  • 济南建站公司效果网站开发新功能
  • 企业网站的开发流程是什么wordpress图表插件
  • 常德网站建设开发哪家好老榕树智能建站系统
  • 八宝山做网站公司做易经类的网站
  • ucenter使用自己做的网站漳州专业网站建设
  • 辽宁建设厅网站什么时候换的网站外链接自己可以怎么做的
  • 建设部网站的诚信平台专门做微信推送的网站
  • 上海网站策划广州外贸公司排名
  • 机关网站建设工作方案网站建设公司测评
  • 大淘客cms网站怎么做花生壳可以用来做网站吗
  • 如何选择大良网站建设眉山市住房和城乡建设局网站
  • 云南省网站开发公司深圳市住房和建设局局长级别
  • 免费开源网站模板厦门注册公司流程
  • 小型公司网站建设360免费wifi电脑版