随笔分类 -  算法刷题

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