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

力扣 多数元素

用了排序跟抵消。

题目

由题可知,多数元素是指在数组中出现次数大于一半的元素,且总是存在多数元素。不难想到,把数组排序后,这个数组的中间数一定是这个要找的元素。

用了sort排序,时间复杂度O(nlogn),空间复杂度O(1)。

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

然后,也可以用抵消的思路,类似投票候选人,记要找的元素为1,其它元素为-1,这样累加下来肯定是为1的,然后就是通过前面几个数作抵消,当剩余那个数即找到候选人,也是要找的元素了。

时间复杂度O(n),空间复杂度O(1),相对更快一点。

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

一题多解,转变思路很重要。 

 


http://www.mrgr.cn/news/69495.html

相关文章:

  • 使用windows批处理,解决多个svn库提交和更新的需求
  • 大语言模型理论基础
  • 23.网工入门篇--------介绍一下园区网典型组网架构及案例实践
  • 人工智能数据栈互操作性架构师指南
  • 校园二手交易网站毕业设计基于SpringBootSSM框架
  • MySQL与Oracle对比及区别
  • 深度学习在图像识别中的应用
  • 用Java实现samza转换成flink
  • 使用多种机器学习调参模型进行二分类建模的全流程,代做分析辅导
  • 软件工程。
  • C 语言变量
  • 计算机毕业设计Python+大模型动漫推荐系统 动漫视频推荐系统 机器学习 协同过滤推荐算法 bilibili动漫爬虫 数据可视化 数据分析 大数据毕业设计
  • 硬件基础知识补全计划【七】MOS 晶体管
  • Oasis AI Minecraft:全球首个全AI驱动实时生成游戏的潜力与挑战
  • 移动应用开发:简易登录页
  • 【DCCMCI】多模态情感分析的层次去噪、表征解纠缠和双通道跨模态-上下文交互
  • 不想付费?这款免费软件满足你所有文件同步的需求
  • 从经典到应用:探索 AlexNet 神经网络
  • html5+css3(css2现状,css3选择器,属性选择器,结果伪类选择器,伪元素选择器)
  • 智能合约在供应链金融中的应用
  • HTML5+css3(浮动,浮动的相关属性,float,解决浮动的塌陷问题,clear,overflow,给父亲盒子加高度,伪元素)
  • 2024系统分析师---统一过程(淘宝押题)
  • 【Ubuntu24.04】部署服务(基础)
  • 使用VSCode远程连接服务器并解决Neo4j无法登陆问题
  • windows C#-使用异常
  • k8s中基于overlay网络和underlay网络的网络插件分别有哪些