算法
ALKEN ABBY
这个作者很懒,什么都没留下…
展开
-
千位分隔数
千位分隔数原创 2022-09-02 20:07:48 · 117 阅读 · 0 评论 -
字符串相乘及 js中 +a的作用
字符串相乘及 js中 +a的作用原创 2022-09-01 16:07:43 · 605 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
二维数组中的查找/** * @param {number[][]} matrix * @param {number} target * @return {boolean} */// 这道题我想到了,但是起始点没有找对// 面试题如果太简单的话,一定是让你降低时间复杂度//这道题从 右上方 开始进行遍历,很聪明,找对了规律,但是我找错了初始点var findNumberIn2DArray = function (matrix, target) { //注意下面这三个还必须按照顺原创 2021-12-02 23:26:04 · 93 阅读 · 0 评论 -
剑指 Offer 03. 数组中重复的数字
数组中重复的数字/** * @param {number[]} nums * @return {number} */var findRepeatNumber = function (nums) { let hash=new Map(); for(let i=0;i<nums.length;i++){ if(hash.has(nums[i])){ return nums[i]; } hash.set(num原创 2021-12-02 23:25:09 · 268 阅读 · 0 评论 -
剑指Offer 10- I. 斐波那契数列(js版本)
斐波那契数列(js版本)/** * @param {number} n * @return {number} */// 字节要求 logn,去你的,矩阵快速幂// https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof/solution/fei-bo-na-qi-shu-lie-by-leetcode-solutio-hbss/var fib = function(n) { if (n < 2) {原创 2021-12-02 23:24:27 · 688 阅读 · 0 评论 -
力扣试题--26. 删除有序数组中的重复项(js版本)
删除有序数组中的重复项(js版本)/** * @param {number[]} nums * @return {number} */// 官方的这个思路挺好的// 但是这个双指针和之前的不一样,是同向的,只是快慢问题// 这道题坑很多,需要考虑完全// https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/solution/shan-chu-pai-xu-shu-zu-zhong-de-zhong-fu-原创 2021-12-02 23:22:59 · 557 阅读 · 0 评论 -
力扣试题--最长回文子串(js版本)
最长回文子串(js版本)/** * @param {string} s * @return {string} */// 这道题的动态规划只有那么强了,状态转移方程只能说非常的牛逼,想不到呀var longestPalindrome = function (s) { let len = s.length; if (len < 2) { return s; } let maxlen = 1; let begin = 0; /原创 2021-12-02 23:21:53 · 460 阅读 · 0 评论 -
力扣试题--验证回文串(js版本)
验证回文串(js版本)/** * @param {string} s * @return {boolean} */var isPalindrome = function (s) { s = s.toLowerCase(); let s1 = ""; // 对数组里面的东西进行处理,处理干净 for (let i = 0; i < s.length; i++) { if (((s[i] >= 'a' && s[i] <原创 2021-12-02 23:20:37 · 623 阅读 · 0 评论 -
力扣试题--55. 跳跃游戏(js版本)
力扣试题–55. 跳跃游戏(js版本)/** * @param {number[]} nums * @return {boolean} */// f[i] ----- f[i+k]// f[i] + {f[i]} == f[i+a] 1<=a<=k[i]// f[i+a]=f[i]+a; // 状态方程不一定只有等式的,还可能有不等式// 结果这道题他给我用的是贪心,我大无语// 感觉贪心和动态规划也有很多相似的地方//这道题思路太巧妙了// https://lee原创 2021-12-02 23:15:21 · 320 阅读 · 0 评论 -
力扣试题--19. 删除链表的倒数第 N 个结点(js版本)
力扣试题–19. 删除链表的倒数第 N 个结点(js版本)/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } */// 这道题思路是正确的,但是每次链表的时候,那个 next// 就是分不清楚啥原创 2021-11-30 23:20:10 · 226 阅读 · 0 评论 -
力扣试题--678. 有效的括号字符串(js版本)
力扣试题–678. 有效的括号字符串(js版本)/** * @param {string} s * @return {boolean} */// 括号匹配:栈的应用// 如果遇到左括号,则将当前下标存入左括号栈。// 如果遇到星号,则将当前下标存入星号栈。// 这道题的官方题解真的很牛,思路很清晰// 经典题,必须得要会var checkValidString = function (s){ let len=s.length; let leftStack=[];原创 2021-11-30 23:19:16 · 189 阅读 · 0 评论 -
力扣试题--岛屿数量(js版本)
力扣试题–岛屿数量(js版本)/** * @param {character[][]} grid * @return {number} */// 方法1:深度优先搜索// 经典套路和方法,记也要记住var dfs=function(grid,r,c){ let nr=grid.length; let nc=grid[0].length; // 越界或者到水域了 if(r<0 || c<0 || r>=nr || c>=nc || gr原创 2021-11-30 23:18:16 · 211 阅读 · 0 评论 -
力扣试题--岛屿周长(js版本)
力扣试题–岛屿周长(js版本)/** * @param {number[][]} grid * @return {number} * https://leetcode-cn.com/problems/island-perimeter/ */// 关键是弄懂岛屿的周长怎样计算:// 由图可知:它被算作岛屿的周长当且仅当这条边为网格的边界或者相邻的另一个格子为水域// 网格题也算比较经典,感觉套路是差不多的var islandPerimeter = function (grid) {原创 2021-11-30 23:17:00 · 154 阅读 · 0 评论 -
力扣试题--229. 求众数 II(js版本)
力扣试题–229. 求众数 II(js版本)/** * @param {number[]} nums * @return {number[]} */var majorityElement = function (nums) { let hash=new Map(); for(let i=0;i<nums.length;i++){ if(hash.has(nums[i])){ let val=hash.get(nums[i]);原创 2021-11-30 23:16:11 · 149 阅读 · 0 评论 -
力扣试题--96. 不同的二叉搜索树(js版本)
力扣试题–96. 不同的二叉搜索树(js版本)/** * @param {number} n * @return {number} * * https://leetcode-cn.com/problems/unique-binary-search-trees/solution/bu-tong-de-er-cha-sou-suo-shu-by-leetcode-solution/ * * */// 分析过程;这道题求二叉树的个数,但是居然没有设定二叉树的数据结构// 只有个数,那要不原创 2021-11-30 23:15:02 · 203 阅读 · 0 评论 -
力扣试题--257. 二叉树的所有路径(js版本)
力扣试题–257. 二叉树的所有路径(js版本)/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : ri原创 2021-11-30 23:13:15 · 206 阅读 · 0 评论 -
力扣试题--637. 二叉树的层平均值(js版本)
力扣试题–637. 二叉树的层平均值(js版本)/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : ri原创 2021-11-30 23:11:25 · 334 阅读 · 0 评论 -
力扣试题--零钱兑换(js版本)
力扣试题–零钱兑换(js版本)/** * @param {number[]} coins * @param {number} amount * @return {number} */// 典型的动态规划// 这道题简直不要太经典// 如果想到了动态规划的原理的话,非常的清晰var coinChange = function (coins, amount) { if (amount == 0) { return 0 } if (coins.lengt原创 2021-11-30 23:10:21 · 333 阅读 · 0 评论 -
力扣试题--回文链表(js版本)
力扣试题–回文链表(js版本)/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } */function ListNode(val, next) { this.val = (val === un原创 2021-11-30 22:50:48 · 190 阅读 · 0 评论 -
力扣试题--环形链表(js版本)
力扣试题–环形链表(js版本)/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */function ListNode(val) { this.val = val; this.next = null;}/** * @param {ListNode} head * @return {原创 2021-11-28 22:25:57 · 417 阅读 · 0 评论 -
力扣试题--二叉树的后序遍历(js版本)
力扣试题–二叉树的后序遍历(js版本)/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right)原创 2021-11-28 22:25:01 · 313 阅读 · 0 评论 -
力扣试题--二叉树的前序遍历(js版本)
力扣试题–二叉树的前序遍历(js版本)分为递归和迭代两种方法/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? nu原创 2021-11-28 22:24:06 · 241 阅读 · 0 评论 -
力扣试题--合并两个有序链表(js版本)
力扣试题–合并两个有序链表(js版本)/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } */// 这个题经典且基础,需要很熟function ListNode(val, next) {原创 2021-11-28 22:23:00 · 223 阅读 · 0 评论 -
力扣试题--基本计算器(js版本)
力扣试题–基本计算器(js版本)/** * @param {string} s * @return {number} * * https://leetcode-cn.com/problems/basic-calculator-ii/solution/ji-ben-ji-suan-qi-ii-by-leetcode-solutio-cm28/ * * 看题解思路很清晰,但是栈的应用不一定能够好好写出来 */var calculate = function (s) { s = s.原创 2021-11-28 22:21:43 · 172 阅读 · 0 评论 -
力扣试题--二叉树的层序遍历(js版本)
力扣试题–二叉树的层序遍历(js版本)/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right)原创 2021-11-28 22:19:57 · 232 阅读 · 0 评论 -
力扣试题--删除排序链表中的重复元素(js版本)
力扣试题–删除排序链表中的重复元素(js版本)/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } */function ListNode(val, next) { this.val = (va原创 2021-11-28 22:18:54 · 90 阅读 · 0 评论 -
力扣试题--爬楼梯(js版本)
力扣试题–爬楼梯(js版本)var climbStairs = function(n){ // 方法1:任何可以使用递归的,都可以转为非递归 // 就是 滚动数组 let a=0,b=0,res=1; for(let i=0;i<n;i++){ a=b; b=res; res=b+a; } return res; // 方法2可以,但是超出时间限制 // if(n==1 || n=原创 2021-11-28 22:16:35 · 389 阅读 · 0 评论 -
无重复字符的最长子串(js版本)
力扣试题–无重复字符的最长子串(js版本)/** * @param {string} s * @return {number} */var lengthOfLongestSubstring = function (s) { // 哈希集合,记录每个字符是否出现过 const occ = new Set(); const n = s.length; // 右指针,初始值为-1,相当于我们在字符串的左边界的左侧,还没有开始移动 let rk = -1,原创 2021-11-28 22:15:34 · 442 阅读 · 0 评论 -
过河卒(洛谷)
P1002 [NOIP2002 普及组] 过河卒(洛谷)分析如下:(注意棋盘的越界问题)C++代码:#include <iostream>using namespace std;const int MAXN=20+2;const int MAXM=20+2;bool vis[MAXN][MAXM];//全局变量会被初始化为0,false表示可以走 long long ans[MAXN][MAXM];//到某个点的所有走法 int main(){ int n=0,m原创 2021-02-28 10:54:13 · 234 阅读 · 0 评论