Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

第 k 大元素 | 中等级-算法 #11

Open
OBKoro1 opened this issue Aug 1, 2019 · 0 comments
Open

第 k 大元素 | 中等级-算法 #11

OBKoro1 opened this issue Aug 1, 2019 · 0 comments

Comments

@OBKoro1
Copy link
Owner

OBKoro1 commented Aug 1, 2019

博客链接

# 第 k 大元素

# 难度:中等

# 描述:

在数组中找到第 k 大的元素

# 样例:

给出数组 [9,3,2,4,8],第三大的元素是 4

给出数组 [1,2,3,4,5],第一大的元素是 5,第二大的元素是 4,第三大的元素是 3,以此类推

# 思路分析:

# 代码模板:

/**
 * @param n: An integer
 * @param nums: An array
 * @return: the Kth largest element
 */
const kthLargestElement = function(n, nums) {
  // write your code here
};

# 想一想再看答案

# 想一想再看答案

# 想一想再看答案

# 代码:

  1. 从大到小,移除n个最大值
const kthLargestElement = function(n, nums) {
  let value;
  // 遍历n次,移除n个最大值,最终value即为第n大元素
  for (let i = 0; i < n; i++) {
    let item = Math.max(...nums); // 取出最大值
    value = nums.splice(nums.indexOf(item), 1)[0]; // 删除并保存最大值
  }
  return value;
};
console.log(
  '输出',
  kthLargestElement(3, [9, 3, 2, 4, 8]),
  kthLargestElement(1, [1, 3, 4, 2])
);
  1. sort排序
const kthLargestElement = function(n, nums) {
  // 降序
  nums.sort((a, b) => {
    return b - a;
  });
  return nums[n - 1]; // 第n大(数组从0开始)
};
console.log(
  '输出',
  kthLargestElement(3, [9, 3, 2, 4, 8]),
  kthLargestElement(1, [1, 3, 4, 2])
);

# 点个Star支持我一下~

博客链接

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant