分类
未分类

leetcode刷题记录

随缘更新,记录下自己的刷题记录

刷题要有思路的刷题,这轮刷题的目的就是熟悉题型,没事造造火箭。所以我选择的刷题思路是按照tag进行刷题。每个tag刷一个月。刷题的频率暂定是每个工作日刷一题,不论简单或难,总之要有一题,纯粹当爱好。

更新-2020-06-09

//这题是考常见的排序,冒泡,快排,插入排序等常见的排序都可以
// https://leetcode-cn.com/problems/kth-largest-element-in-an-array/submissions/
/**
 * @param {number[]} nums
 * @param {number} k
 * @return {number}
 */
var findKthLargest = function(nums, k) {
    return nums.sort(compareNumbers)[nums.length - k]
};

function compareNumbers(a, b) {
  return a - b;
}

sort 的源码实现目前有新旧两版 旧版的是根据数组的长度,内部调用的不同的算法来实现的,数组小于10的时候调用的是插入排序 数组大于10的时候 使用的是快排

具体可以看这里https://github.com/v8/v8/blob/ad82a40509c5b5b4680d4299c8f08d6c6d31af3c/src/js/array.js

新版的看这里 https://github.com/v8/v8/blob/master/third_party/v8/builtins/array-sort.tq

更新-2020-06-08

// 这题是leetcode第一题 https://leetcode-cn.com/problems/two-sum/
// 可以使用暴力穷举法进行,也可以采用HashMap,这里采用的是HashMap来实现
/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var twoSum = function (nums, target) {
    let myMap = Object.create({});
    var index = 0;
    for (var value of nums) {
        if (myMap[target - value] !== undefined) {
            return [myMap[target - value], index]
        }
        myMap[value] = index;
        index += 1;
    }
};

执行用时 :60 ms, 在所有 JavaScript 提交中击败了97.56%的用户

内存消耗 :37.9 MB, 在所有 JavaScript 提交中击败了5.08%的用户

发表评论

电子邮件地址不会被公开。 必填项已用*标注