深圳幻海软件技术有限公司 欢迎您!

【LeetCode】剑指 Offer(21)

2023-04-02

目录题目:剑指Offer39.数组中出现次数超过一半的数字-力扣(Leetcode)题目的接口:解题思路:代码:过啦!!!题目:剑指Offer40.最小的k个数-力扣(Leetcode)题目的接口:解题思路:代码:过啦!!!写在最后:题目:剑指Offer39.数组中出现次数超过一半的数字-力扣(Le

目录

题目:剑指 Offer 39. 数组中出现次数超过一半的数字 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

题目:剑指 Offer 40. 最小的k个数 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

写在最后:


题目:剑指 Offer 39. 数组中出现次数超过一半的数字 - 力扣(Leetcode)

题目的接口:

  1. class Solution {
  2. public:
  3. int majorityElement(vector<int>& nums) {
  4. sort(nums.begin(), nums.end());
  5. return nums[nums.size() / 2];
  6. }
  7. };

解题思路:

这道题,我的思路是直接排序,

然后返回中间下标的那个值。

这种方法很好,但也有一点不好

当你写出下面这段代码后:

代码:

  1. class Solution {
  2. public:
  3. int majorityElement(vector<int>& nums) {
  4. sort(nums.begin(), nums.end());
  5. return nums[nums.size() / 2];
  6. }
  7. };

面试官:你先回家等消息吧。

过啦!!!

 这道题还有很多方法,我想到的就是用哈希去做。

题目:剑指 Offer 40. 最小的k个数 - 力扣(Leetcode)

题目的接口:

  1. class Solution {
  2. public:
  3. vector<int> getLeastNumbers(vector<int>& arr, int k) {
  4. }
  5. };

解题思路:

这道题的思路就是排序,

或者说考查的是排序算法,

记得在面试的时候千万不要直接用sort,

我在这里用是因为我懒.......

思路:

先排序,

然后输出前k个数即可。

这段代码我就不写注释了:

代码:

  1. class Solution {
  2. public:
  3. vector<int> getLeastNumbers(vector<int>& arr, int k) {
  4. sort(arr.begin(), arr.end());
  5. vector<int> v;
  6. for(int i = 0; i < k; i++)
  7. {
  8. v.push_back(arr[i]);
  9. }
  10. return v;
  11. }
  12. };

面试官:今天的面试就到这里吧。

过啦!!!

 大家面试的时候课千万不敢这么搞啊。

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。

文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览42750 人正在系统学习中