随笔分类 - 算法刷题
摘要:二分查找 二分查找(Binary search)也称折半查找,是一种效率较高的查找方法。但是要求数组必须是有序的。 最好时间复杂度是: O(1),最好情况下只需要进行1次比较就能找到目标元素 最坏**时间复杂度是: O(log2n),最坏情况下查找至最后一个元素,或查找不到目标元素 平均**时间复杂
阅读全文
摘要:146. LRU 缓存 var LRUCache = function (capacity) { this.capacity = capacity; this.map = new Map(); }; LRUCache.prototype.get = function (key) { if (this
阅读全文
摘要:3. 无重复字符的最长子串 var lengthOfLongestSubstring = function(s) { let arr = []; let max = 0 for (let i = 0; i < s.length; i++) { let index = arr.indexOf(s[i]
阅读全文
摘要:219. 存在重复元素 var containsNearbyDuplicate = function(nums, k) { for (let i = 0; i < nums.length; i++) { let j = nums.indexOf(nums[i], i + 1) if (j > -1
阅读全文
摘要:566. 重塑矩阵 var matrixReshape = function(mat, r, c) { if (mat.length * mat[0].length != r * c) { return mat; } var newArr = mat.flat(Infinity); var resu
阅读全文
摘要:[toc 88. 合并两个有序数组 var merge = function(nums1, m, nums2, n) { let A1 = nums1.slice(0, m) let A2 = nums2 // 追加哨兵 A1.push(Number.MAX_SAFE_INTEGER) A2.pus
阅读全文
摘要:225. 用队列实现栈(先入后出) var MyStack = function() { this.data = [] }; MyStack.prototype.push = function(x) { this.data.push(x) }; MyStack.prototype.pop = fun
阅读全文
摘要:168. Excel表列名称 var convertToTitle = function(columnNumber) { let str = '' let n = columnNumber while (n) { let y = n % 26 // 从后往前取余 n = n / 26 | 0 //
阅读全文
摘要:66. 加一 var plusOne = function(digits) { // 1. 从最后一个值进行开始遍历 // 2. 只要是%10 0,就直接继续遍历,否则返回值即可 // 3. 最后,遍历完还没给出结果的,那肯定是 10,这种所以要往前加1 for (let i = digits.le
阅读全文
摘要:1. 两数之和 var twoSum = function(nums, target) { // 第一种 // var len = nums.length // for (var i = 0; i < len; i++) { // for (var j = i + 1; j < len; j++)
阅读全文
摘要:1. Candy Solo和koko分糖 如果可以分给弟弟,必定满足全部异或为0,找出最小的一个给弟弟 function handle1(input) { let [num, map] = input.split("\n"); map = map.split(/\s+/).map(a => Numb
阅读全文
摘要:“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出**“答案错误”**。 得到**“答案正确”**的条件是: 字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符; 任意形如 xPA
阅读全文
摘要:读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100 。 输出格式: 在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。 输
阅读全文
摘要:卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题
阅读全文

浙公网安备 33010602011771号