算法
文章平均质量分 65
seaalan
这个作者很懒,什么都没留下…
展开
-
JS手撕代码(算法篇)
3. 无重复字符的最长子串给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。// 暴力解,超时var lengthOfLongestSubstring = function(s) { let res = 0; for(let i = 0; i < s.length; i++){ for(let j = i+1; j <原创 2022-05-15 23:34:19 · 418 阅读 · 0 评论 -
牛客网-前端刷题记录
文章目录自守数、质数(素数)、约数、完全数HJ99 自守数√HJ6 质数因子√√HJ56 完全数计算√√HJ60 查找组成一个偶数最接近的两个素数√数列HJ100 等差数列√HJ76 尼科彻斯定理√√HJ35 蛇形矩阵递归HJ37 统计每个月兔子的总数√√HJ22 汽水瓶√√HJ61 放苹果√√HJ91 走方格的方案数√余数HJ53 杨辉三角的变形HJ55 挑7√(中级)HJ57 高精度整数加法√(中级)最大公约数、最小公倍数HJ108 求最小公倍数√√最长回文子串HJ85 最长回文子串√HJ32 密码截取原创 2022-05-03 01:06:33 · 641 阅读 · 0 评论 -
牛客网-前端刷题记录(中等级)
HJ16 购物单//读取数据处理let [N, m] = readline().split(" ").map(Number);//处理数据,使主件的输入一定在附件输入之前let data = [];for (let i = 1; i <= m; i++) { let [v, p, q] = readline().split(" ").map(Number); data.push([i, v, p, q]);}data.sort((a, b) => a[3] - b[3]);原创 2022-04-28 01:03:14 · 1053 阅读 · 0 评论 -
八、leetcode - 栈和队列(JS)
20. 有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。输入: s = "()[]{}"输出: true[ '(' ] [] [ '[' ] [] [ '{' ] []/** * @param {string} s * @return {boolean} */var isValid = function(s) {原创 2022-04-18 00:35:34 · 241 阅读 · 0 评论 -
七、leetcode - 矩阵(JS)
74. 搜索二维矩阵编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。输入: matrix = [ [1, 3, 5, 7 ], [10,11,16,20], [23,30,34,60] ], target = 3输出:原创 2022-04-18 00:34:59 · 535 阅读 · 0 评论 -
六、leetcode - 滑动窗口(JS)
3. 无重复字符的最长子串给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。{ a: 1 } l=0 r=1 res=1 { a: 1, b: 1 } l=0 r=2 res=2 { a: 1, b: 1, c: 1 } l=0 r=3 res=3 { a: 1, b: 1, c: 1 } l=1 r=原创 2022-04-18 00:34:08 · 95 阅读 · 0 评论 -
六、leetcode - 滑动窗口(JS)
3. 无重复字符的最长子串给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。{ a: 1 } l=0 r=1 res=1 { a: 1, b: 1 } l=0 r=2 res=2 { a: 1, b: 1, c: 1 } l=0 r=3 res=3 { a: 1, b: 1, c: 1 } l=1 r=原创 2022-04-18 00:33:04 · 187 阅读 · 0 评论 -
五、leetcode - 快慢指针(JS)
26. 删除有序数组中的重复项输入:nums = [1,1,2]输出:2, nums = [1,2]解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。 不需要考虑数组中超出新长度后面的元素。 修改前 修改后 修改后的slowslow=0 fast=0 [ 1, 1, 1, 2 ] [ 1, 1, 1, 2 ] slow=0 slow=0 fast=1 [ 1, 1, 1, 2 ] [原创 2022-04-18 00:32:10 · 300 阅读 · 0 评论 -
四、leetcode - 二分查找(JS)
Math.floor(left + (right - left) / 2)704. 二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4left=0 right=5 m原创 2022-04-18 00:31:19 · 95 阅读 · 0 评论 -
三、leetcode - 数组(JS)
217. 存在重复元素输入: [1,2,3,1]输出: true/** * @param {number[]} nums * @return {boolean} */var containsDuplicate = function(nums) { let map = {}; for(let item of nums) { if(map[item]) { return true; } map[item] =原创 2022-04-18 00:30:27 · 237 阅读 · 0 评论 -
二、leetcode - 二进制、数学类 (JS)
191. 位1的个数输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。每次去掉二进制中的最后一个11010 1000 0/** * @param {number} n - a positive integer * @return {number} */var hammingWeight = function(n) { let原创 2022-04-18 00:27:20 · 209 阅读 · 0 评论 -
前端基础知识必知必会
数学函数Math.max(1,2)2Math.min(1,2)1// x 的 y 次幂(次方)Math.pow(2,3);8// 向下取整Math.floor(2.9)2// 四舍五入取整Math.round(2.4)2Math.round(2.5)3// 向上取整Math.ceil(2.1)3(3 % 2) === 1 // 判断3是奇数true(2 % 2) === 0 // 判断2是偶数true位运算(3 & 1) === 1 // 判断3是奇原创 2022-04-18 00:26:05 · 160 阅读 · 0 评论 -
一、leetcode - 字符串 (JS)
344. 反转字符串输入: s = [ "h", "e", "l", "l", "o" ]输出: [ "o", "l", "l", "e", "h" ]/** * @param {character[]} s * @return {void} Do not return anything, modify s in-place instead. */var reverseString = function(s) { return s.reverse();};[ 'o',原创 2022-04-18 00:24:14 · 177 阅读 · 0 评论 -
JS 基本方法摘要
一、字符 与 ascii码 互转A. 字符 转 ascii码:用charCodeAt();"A".charCodeAt()65"Z".charCodeAt()90"a".charCodeAt()97"z".charCodeAt()122B. ascii码 转 字符:用fromCharCode();String.fromCharCode(65);'A'二、十进制 与 其它进制 互转A. 十进制 转 其它进制Number('10').toString(2)'1010'Num原创 2022-04-01 00:14:40 · 523 阅读 · 0 评论 -
牛客网-前端刷题记录(简单级)
HJ1 字符串最后一个单词的长度输入:hello nowcoder输出:8let str = readline();let arr = str.split(" ");console.info(arr.pop().length);HJ2 计算某字符出现次数输入:ABCabcA输出: 2let source = readline().toLowerCase();let target = readline().toLowerCase();let arr = sour.原创 2022-03-24 00:08:07 · 1717 阅读 · 0 评论 -
算法题中的一些固定套路
单数组左右对撞指针常用于翻转字符串、判断回文数/串var fun = function(s) { let l = 0; let r = s.length - 1; while(l <= r) { // to do l++; r--; } return 结果;};map = {} 的计数功能常用于1个字符串中的字符个数、判断2个字符串中字符个数是否相等(有效字母异位词)var fun = function(s原创 2021-11-23 23:47:53 · 195 阅读 · 0 评论 -
leetcode - 103道入门基础题
一、leetcode - 字符串二、leetcode - 二进制、数学类三、leetcode - 数组四、leetcode - 二分查找五、leetcode - 快慢指针六、leetcode - 滑动窗口七、leetcode - 矩阵八、leetcode - 栈和队列九、leetcode - 链表十、leetcode - 二叉树十一、leetcode - 并查集十二、leetcode - 回溯十三、leetcode - 动态规划十四、leetcode - 贪心一、leetcode原创 2021-11-22 23:39:55 · 1733 阅读 · 0 评论 -
leetcode - 必背基础题(JS版)
一、leetcode - 字符串 (JS)二、leetcode - 二进制、数学类 (JS)三、leetcode - 数组(JS)四、leetcode - 二分查找(JS)五、leetcode - 快慢指针(JS)六、leetcode - 滑动窗口(JS)七、leetcode - 矩阵(JS)八、leetcode - 栈和队列(JS)九、leetcode - 链表(JS)十、leetcode - 二叉树(JS)十一、leetcode - 并查集(JS)十二、leetcode - 回溯(原创 2021-11-22 23:27:58 · 1224 阅读 · 0 评论