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

大良网站设计价位苏州正规做网站公司

大良网站设计价位,苏州正规做网站公司,音乐网站制作教程步骤,教育网站制作开发序言#xff1a;今天是第五题啦#xff0c;前面四题的解法还清楚吗#xff1f;可以到面试算法题系列150题专栏 进行复习呀。 温故而知新#xff0c;可以为师矣#xff01;加油#xff0c;未来的技术大牛们。 多数元素 给定一个大小为 n 的数组 nums #xff0c;返回其…序言今天是第五题啦前面四题的解法还清楚吗可以到面试算法题系列150题专栏 进行复习呀。 温故而知新可以为师矣加油未来的技术大牛们。 多数元素 给定一个大小为 n 的数组 nums 返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的并且给定的数组总是存在多数元素。 示例 1 输入nums [3,2,3] 输出3 示例 2 输入nums [2,2,1,1,1,2,2] 输出2实现思路这个问题是经典的多数投票问题Boy Scout Rule可以使用摩尔投票算法Moores Voting Algorithm来解决。这个算法的核心思想是使用两个变量一个记录当前的候选多数元素另一个记录该元素的票数。遍历数组对于每个元素如果它与当前候选元素相同则增加票数如果不同则减少票数。如果在减少票数后票数变为0则将当前元素作为新的候选多数元素。 实现代码 public int majorityElement(int[] nums) {int candidate nums[0]; // 当前候选多数元素int count 1; // 当前候选元素的票数// 摩尔投票算法的主体for (int i 1; i nums.length; i) {if (count 0) {candidate nums[i]; // 重置候选元素count 1; // 重置票数} else if (nums[i] candidate) {count; // 如果当前元素与候选元素相同增加票数} else {count--; // 如果当前元素与候选元素不同减少票数}}// 根据题目保证不需要验证步骤直接返回候选多数元素return candidate; } 这个方法的时间复杂度是 O(n)空间复杂度是 O(1)因为它只需要常数级别的额外空间。 小补充如果数组是非空的给定数组不一定存在多数元素呢怎么实现呢 思路上述代码是选出可能为多数元素的候选元素我们只要在这个基础上对其进行判断是否为多数元素即可。 实现代码 public int majorityElement(int[] nums) {int candidate nums[0]; // 当前候选多数元素int count 1; // 当前候选元素的票数for (int i 1; i nums.length; i) {if (nums[i] candidate) {count; // 如果当前元素与候选元素相同增加票数} else {if (count 0) {candidate nums[i]; // 票数归零更新候选元素} else {count--; // 如果当前元素与候选元素不同减少票数}}}// 验证候选元素是否确实是多数元素int result 0;int validCount 0;//记录候选元素的个数for (int num : nums) {if (num candidate) {validCount;}}// 如果候选元素的票数大于数组长度的一半则返回该元素if (validCount nums.length / 2) {return candidate;}// 如果没有找到多数元素则返回0return 0; } 知识复习int num : nums 是一种被称为“增强型for循环”Enhanced For Loop的语法结构它用于遍历数组或集合中的每个元素。这个语法结构允许你用一种简洁的方式迭代数组或Iterable对象。 int num这定义了一个名为 num 的变量它将用于接收数组或集合中的当前元素。在这个上下文中num 是每次循环中的元素变量名你可以使用任何有效的变量名。 :冒号这个符号用于分隔变量定义和迭代的对象。 nums这是被迭代的对象可以是一个数组或实现了 Iterable 接口的集合。 整个表达式 int num : nums 的意思是“对于数组或集合 nums 中的每个元素用变量 num 引用它”。 下面是一个使用这种语法遍历数组的示例 int[] nums {1, 2, 3, 4, 5};for (int num : nums) {// 打印数组中的每个元素System.out.println(num);} 这段代码将打印 1 2 3 4 5 每个循环迭代中数组 nums 中的当前元素都会被赋值给变量 num然后执行循环体内的代码。这种语法使得遍历数组和集合变得更加简洁和易于阅读。
http://www.w-s-a.com/news/754376/

相关文章:

  • 合肥网站排名什么网站做电气自动化兼职
  • 如何用api做网站交通建设门户网站
  • 阳西住房和城乡规划建设局网站长沙网站seo技巧
  • 长沙知名网站推广手机画设计图软件
  • 顺德公司做网站自己有网站怎么优化
  • 南京网站开发南京乐识专业外贸流程知乎
  • 盐田区住房和建设局网站分类网站有哪些
  • 建一个团购网站WordPress文章字号设置
  • 做漂亮的网站东营网站seo
  • 网站开发摊销做设计哪个网站可以接单
  • 惠州h5网站建设建设公司网站报价
  • 做网站多少钱 优帮云嘉兴五县两区网站建设
  • 三亚旅游网站策划书企业网站建设的定位
  • 网站建设工作台账网站建设的实验结论
  • 商业网站建设平台制作软件的软件
  • 本地网站开发wordpress页面关键词和描述
  • 微网站 合同软件开发培训方案
  • 怎么做淘宝客网站备案广告公司图片大全
  • 微信小程序展示网站建设多少钱做网站用什么软件初二
  • 瀑布流资源网站模板打码网站建设
  • wordpress 支付宝打赏网站视觉优化的意义
  • 建设网站需要几个文件夹永久免费内存大服务器
  • 可信赖的手机网站建设wordpress 显示摘要
  • 谁给我一个企业邮箱认证wordpress优化攻略
  • 建站软件免费版下载涿州做网站的
  • html5网站开发西安哪家网站建设公司好
  • 怎么做网站赚广州番禺区是富人区吗
  • 服装网站推广方案戴尔网站建设成功
  • 手机网站布局国外可以用什么网站做问卷
  • 手机建网站网店logo设计图片免费