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

长春做网站长春网站设计网站设计简单讲解

长春做网站长春网站设计,网站设计简单讲解,上海网络营销推广方法,南宁市视点网络信息有限公司414. 第三大的数 题目描述尝试做法推荐做法 题目描述 给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。 示例 1: 输入:[3, 2, 1] 输出:1 解释:第三大的数是 1 。 示例 2&…

414. 第三大的数

  • 题目描述
  • 尝试做法
  • 推荐做法

题目描述

给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。

示例 1:

输入:[3, 2, 1]
输出:1
解释:第三大的数是 1 。
示例 2:

输入:[1, 2]
输出:2
解释:第三大的数不存在, 所以返回最大的数 2 。
示例 3:

输入:[2, 2, 3, 1]
输出:1
解释:注意,要求返回第三大的数,是指在所有不同数字中排第三大的数。
此例中存在两个值为 2 的数,它们都排第二。在所有不同数字中排第三大的数为 1 。

提示:

1 <= nums.length <= 104
-231 <= nums[i] <= 231 - 1

进阶:你能设计一个时间复杂度 O(n) 的解决方案吗?

尝试做法

本来还想用sort一键搞定,为了进阶条件,还是研究一下这题吧

class Solution {public int thirdMax(int[] nums) {long ans = 0;int len = nums.length;if(len == 1) return nums[0];if(len == 2) return Math.max(nums[0],nums[1]);Long first = Long.MIN_VALUE, second = Long.MIN_VALUE,third = Long.MIN_VALUE;for(long i : nums){if(i > first){third = second;second = first;first = i;}else if(i > second && i < first){third = second;second = i;}else if(i > third && i < second){third = i;}}if(third == Long.MIN_VALUE){ans = first;}else{ans = third;}return (int)ans;}
}

被各种输入卡住,然后一步步完善
被输入中含有int最小值的情况卡了很久,后面换成long来赋初始值
有时候正常的输入会产生错误输出,发现是一开始写的判断条件(i > second && i != first)
要改成(i > second && i < first)才行

推荐做法

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;}
}作者:力扣官方题解
链接:https://leetcode.cn/problems/third-maximum-number/solutions/1032401/di-san-da-de-shu-by-leetcode-solution-h3sp/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

值得一提的是官方题解给了我另一种赋初始值的思路,就是用包装类直接赋值空指针。

class Solution {public int thirdMax(int[] nums) {TreeSet<Integer> s = new TreeSet<Integer>();for (int num : nums) {s.add(num);if (s.size() > 3) {s.remove(s.first());}}return s.size() == 3 ? s.first() : s.last();}
}作者:力扣官方题解
链接:https://leetcode.cn/problems/third-maximum-number/solutions/1032401/di-san-da-de-shu-by-leetcode-solution-h3sp/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

还有一种做法是使用有序集合TreeSet

http://www.dtcms.com/wzjs/605009.html

相关文章:

  • 网站开发充值功能dw个人网站设计模板免费
  • 军事最新消息广州优化网站
  • 淘宝发布网站建设种子在线资源搜索神器
  • 微信公众号 链接微网站钢筋网片理论重量表规格表
  • 益阳网站制作公司地址构建一个网站的步骤
  • 雷州手机网站建设电子商务网站软件建设核心
  • 做网站怎么插音乐循环广东的网站备案
  • 辽宁网站建设企业定制公司永久免费linux服务器下载
  • 沧州国外网站建设织梦如何做汽车贸易网站
  • 宁津 做网站建自己的网站做外贸
  • 开发网站培训班厦门网站建设推广
  • 计算机学习网站内蒙古自治区建设厅网站首页
  • asp 网站开发教程龙岩设计师
  • 汝阳网站建设荷兰网站域名
  • 网站繁体js公司管理系统网站
  • 滁州网站建设联系方式最近几天新闻大事
  • 做国外网站的站长微软哪个软件做网站
  • 重庆seo整站优化系统网页设计尺寸标注
  • 义乌公司网站wordpress 文章文件夹
  • 做传奇网站怎么弄怎么让网站被搜索到
  • 株洲做网站优化培训网站建设
  • 广州建设高端网站网站做友情链接的用途
  • 网站超链接的优化公司企业做网站怎么做
  • 重庆网站建设子沃科技熊掌号汽车网站策划书
  • 做外贸网站如果是东西杂会不会不好推广大连网站设计公司排名
  • 梦扬科技 合肥网站建设app开发费用报价表
  • 延庆县专业网站制作网站建设房地产网
  • 做资源的教育类网站或公司mvc5 网站开发之美 pdf
  • 做网站一个月能赚多少钱电子商务网站建设基本组成
  • 网站域名备案服务广州网站开发公司有哪些