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

微软 网站开发重庆小潘seo

微软 网站开发,重庆小潘seo,wordpress雷锋网,wordpress开启多语言题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 思考: 方法一:投…

题目:

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。

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

示例:

输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]
输出: 2

思考:

  • 方法一:投机取巧

  • 将数组排序,出现次数超过一半的数字肯定在数组中间的那个位置

题解:

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

思考:

  • 方法二:哈希表辅助

  • 使用一个 map,key 存数组中的数字,val 存出现的次数

  • 当有数字出现次数超过数组长度一半时,直接返回

题解:

class Solution {public int majorityElement(int[] nums) {Map<Integer,Integer> map = new HashMap<>();for(int num : nums){map.put(num,map.getOrDefault(num,0)+1);if(map.get(num)> nums.length>>1) return num;}return 0;}
}

思考:

  • 方法三,摩尔投票法

  • 众数和非众数投票,初始票数为 0,为 0 时假设当前数字为众数

  • 遍历数组,是众数 +1,不是众数 -1,为 0 就接着继续重新来

  • 最后得到众数

题解:

class Solution {public int majorityElement(int[] nums) {int vote = 0;int x = 0;for (int i = 0; i < nums.length; i++) {if (vote == 0) x = nums[i];if (x == nums[i]) vote++;else vote--;}return x;}
}
http://www.yayakq.cn/news/145043/

相关文章:

  • php网站如何上传数据库农村社区网站建设
  • 宁波专业做公司网站的科技公司做财经类网站要许可吗
  • 宜兴做网站百度文档怎么免费下vvv
  • 网站建设创新能力痛点企业微信开放平台api
  • 长沙柒零叁网站建设网店美工的工作内容是什么
  • 北京电商网站开发网站首页的动态效果图怎么做
  • 如何做一个购物网站吃什么补肾壮阳
  • 代备案网站网店美工岗位职责
  • html网站源代码wordpress博客 分类
  • 河北网站备案查询系统网站js特效悬浮框
  • 奉新网站建设北京平面设计公司名称
  • 信息图表设计网站30岁学前端开发是不是晚了
  • 杭州群游科技网站做的魔域WordPress主题(模板)制作教程
  • 溧阳网站建设中心开源 企业网站
  • 北京网站平台开发邢台招聘信息网
  • 泸州住房城乡建设局官方网站私人定制音乐app软件
  • 大德通众包网站建设个人网站的订单
  • 自己做的网站可以百度推广吗感叹号分销系统
  • 故宫博物院官网网站咋做的个人建购物网站 备案
  • 文化网站建设论文广州公司注册流程及费用
  • 贵州省住房城乡建设部网站wordpress微信支付开发
  • saas系统是什么意思啊seo服务 公司
  • 网站需求分析报告河南建设银行处理违章网站
  • 做钢材都有什么网站大型网站 网站建设
  • 做网站 宁波手机建设网站公司
  • 传奇怎么建设自己的网站邢台物流网站建设
  • 郑州专业网站推广公司网站开发服务器多少钱
  • 网站建设工作室怎么接单如今做那个网站致富
  • 张家界搜索引擎优化新开的网站怎么做seo优化
  • 南京企业网站开发做cra需要关注的网站