iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
自我挑戰組

30天刷題大挑戰系列 第 9

第 08 天 再接再厲堅持不懈( leetcode 300 347 )

JavaScript 解答

var lengthOfLIS = function (nums) {
    var dp = [];
    for (var i = 0; i < nums.length; i++) {
        dp[i] = 1;
        var max = 0;
        for (var j = 0; j < i; j++) {
            if (nums[j] < nums[i]) {
                if (dp[j] > max) {
                    max = dp[j]
                }
            }
        }
        dp[i] = max + 1;
    }
    return Math.max(...dp);
};

console.log(lengthOfLIS([23, 2, 4, 5, 6]));

JavaScript 解答

var topKFrequent = function (nums, k) {
    var map = {};
    for (var i = 0; i < nums.length; i++) {
        map[nums[i]] = map[nums[i]] ? map[nums[i]] + 1 : 1;
    }
    var keys = Object.keys(map);
    keys.sort((a, b) => {
        if (map[a] > map[b]) return -1;
        if (map[a] < map[b]) return 1;
        return 0;
    });
    // console.log(map, keys);
    return keys.slice(0, k).map(a => parseInt(a));
};

console.log(topKFrequent([1, 1, 1, 2, 2, 3, 4], 2));

上一篇
第 07 天 不斷嘗試直到成功( leetcode 106 )
下一篇
第 09 天 日積月累養成習慣( leetcode 413 416 )
系列文
30天刷題大挑戰16

尚未有邦友留言

立即登入留言