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

有专业做网站郑州网站制作专业乐云seo

有专业做网站,郑州网站制作专业乐云seo,门户地方网站 策略,html商品页面代码414. 第三大的数 难度#xff1a;简单 题目 给你一个非空数组#xff0c;返回此数组中 第三大的数 。如果不存在#xff0c;则返回数组中最大的数。 示例 1#xff1a; 输入#xff1a;[3, 2, 1] 输出#xff1a;1 解释#xff1a;第三大的数是 1 。示例 2#xf…414. 第三大的数 难度简单 题目 给你一个非空数组返回此数组中 第三大的数 。如果不存在则返回数组中最大的数。 示例 1 输入[3, 2, 1] 输出1 解释第三大的数是 1 。示例 2 输入[1, 2] 输出2 解释第三大的数不存在, 所以返回最大的数 2 。示例 3 输入[2, 2, 3, 1] 输出1 解释注意要求返回第三大的数是指在所有不同数字中排第三大的数。 此例中存在两个值为 2 的数它们都排第二。在所有不同数字中排第三大的数为 1 。提示 1 nums.length 10^4-2^31 nums[i] 2^31 - 1 **进阶**你能设计一个时间复杂度 O(n) 的解决方案吗 个人题解 思路 用三个变量分别装最大第二大第三大的数一次遍历即可就是要注意条件 class Solution {public int thirdMax(int[] nums) {Integer[] maxArr new Integer[3];for (int num : nums) {if (maxArr[0] null || num maxArr[0]) {maxArr[2] maxArr[1];maxArr[1] maxArr[0];maxArr[0] num;} else if (num ! maxArr[0] (maxArr[1] null || num maxArr[1])) {maxArr[2] maxArr[1];maxArr[1] num;} else if (num ! maxArr[0] num ! maxArr[1] (maxArr[2] null || num maxArr[2])) {maxArr[2] num;}}return maxArr[1] null || maxArr[2] null ? maxArr[0] : maxArr[2];} }复杂度分析 时间复杂度O(n)空间复杂度O(1) 官方题解 方法一排序 将数组从大到小排序后从头开始遍历数组通过判断相邻元素是否不同来统计不同元素的个数。如果能找到三个不同的元素就返回第三大的元素否则返回最大的元素。 class Solution {public int thirdMax(int[] nums) {Arrays.sort(nums);reverse(nums);for (int i 1, diff 1; i nums.length; i) {if (nums[i] ! nums[i - 1] diff 3) { // 此时 nums[i] 就是第三大的数return nums[i];}}return nums[0];}public void reverse(int[] nums) {int left 0, right nums.length - 1;while (left right) {int temp nums[left];nums[left] nums[right];nums[right] temp;left;right--;}} }复杂度分析 时间复杂度O(n log⁡n)空间复杂度O(log⁡n) 方法二有序集合 我们可以遍历数组同时用一个有序集合来维护数组中前三大的数。具体做法是每遍历一个数就将其插入有序集合若有序集合的大小超过 3就删除集合中的最小元素。这样可以保证有序集合的大小至多为 3且遍历结束后若有序集合的大小为 3其最小值就是数组中第三大的数若有序集合的大小不足 3那么就返回有序集合中的最大值。 class Solution {public int thirdMax(int[] nums) {TreeSetInteger s new TreeSetInteger();for (int num : nums) {s.add(num);if (s.size() 3) {s.remove(s.first());}}return s.size() 3 ? s.first() : s.last();} }复杂度分析 时间复杂度O(n)空间复杂度O(1) 方法三一次遍历 class Solution {public int thirdMax(int[] nums) {long a Long.MIN_VALUE, b Long.MIN_VALUE, c Long.MIN_VALUE;for (long num : nums) {if (num a) {c b;b a;a num;} else if (a num num b) {c b;b num;} else if (b num num c) {c num;}}return c Long.MIN_VALUE ? (int) a : (int) c;} }class Solution {public int thirdMax(int[] nums) {Integer a null, b null, c null;for (int num : nums) {if (a null || num a) {c b;b a;a num;} else if (a num (b null || num b)) {c b;b num;} else if (b ! null b num (c null || num c)) {c num;}}return c null ? a : c;} }复杂度分析 时间复杂度O(n)空间复杂度O(1) 作者力扣官方题解 链接https://leetcode.cn/problems/third-maximum-number/solutions/1032401/di-san-da-de-shu-by-leetcode-solution-h3sp/ 来源力扣LeetCode 著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。
http://www.pierceye.com/news/396642/

相关文章:

  • 网站建设和网站优化哪个更重要提供邯郸网站建设
  • 做网站一般把宽度做多少合肥优化
  • 石家庄做网站公司汉狮价格猴痘的治疗方法
  • 自己有网站 做app吗深圳罗湖企业网站推广
  • 廊坊建设局网站6阿里云虚拟主机网站
  • 设计一个电商网站西安seo盐城
  • 上海网站公司建设网页设计网站欣赏
  • 平台网站如何做推广1280的界面网站做多宽
  • 男男做爰视频网站微信扫码点餐小程序怎么做
  • 哈尔滨做网站的价格如何利用wordpress搭建一个发卡网
  • 商会建设网站说明网站建设属于技术活吗
  • 免费申请手机网站公司画册模板免费下载
  • 网站建设策划做一个卖货的app要多少钱
  • 泉州网站平台建设公司网站服务器出错了怎么办
  • 佛山网站设计专业手机网站模板设计软件
  • 顺德网站优化公司wordpress 去广告
  • 自己建企业网站怎么建免费大数据查询
  • 短视频素材免费下载网站江西省城乡建设厅网站
  • 西安做网站公司工资wordpress 导航 分类
  • 网站建设免费教程网页设计图片高清
  • 网站后台源代码东直门小学的网站建设
  • 无锡建设局评职称网站分析 网站
  • 宜昌需要做网站建设的公司python做调查问卷网站
  • 乐陵森大最好的seo优化公司
  • php网站开发实施方案福建建筑信息平台
  • 怎么写公司网站的文案建设网站技术公司简介
  • 陕西做网站的wordpress增加变量
  • 莒南县建设工程网站网站认证方式有几种
  • 举报网站建设自查报告相同网站名
  • 网站建设网站建设公司北京logo设计制作