自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 Leetcode283【Js】

1、使用mapvar moveZeroes = function(nums) { let index = 0 nums.map(i=>{ if(i!=0){ nums[index] = i index++ } }) nums.fill(0,index)};2、双指针右指针遇到0则右移,非0则与左指针交换。思路:把非0数前移,最后补0var moveZeroes = fun.

2021-07-27 10:55:00 98

原创 剑指Offer 43 / leetcode.23【Js】

1、暴力法直接一个for循环,再用正则匹配得到每一项中1的个数,最后相加。简单粗暴,可是很遗憾,超时了。。。/** * @param {number} n * @return {number} */var countDigitOne = function(n) { let res = 0; for(let i=0;i<=n;i++){ if(i.toString().indexOf('1')!==-1){ let temp = .

2021-07-26 10:42:51 163

原创 leetcode.204 计数质数【Js】

1、(傻瓜向)遍历判断质数从0到根号n,先来判断n是否是质数,再计数。/** * @param {number} n * @return {number} */var countPrimes = function(n) { let isPrime = (n)=>{ for(let i=2;i<=Math.sqrt(n);i++){ if(n%i===0) return false; } return .

2021-07-23 11:12:05 133

原创 leetcode.300【Js】

dp[i]的定义:dp[i]表示i之前包括i的最长上升子序列。状态转移方程位置i的最长升序子序列等于j从0到i-1各个位置的最长升序子序列 + 1 的最大值。if (nums[i] > nums[j]){dp[i] = max(dp[i], dp[j] + 1);}注意这里不是要dp[i] 与 dp[j] + 1进行比较,而是我们要取dp[j] + 1的最大值。dp[i]的初始化每一个i,对应的dp[i](即最长上升子序列)起始大小至少都是是1.确定遍历顺序dp[i] 是有0到.

2021-07-20 10:50:57 169

原创 LeetCode.125验证回文串【Js】

大体思路是先拿到纯净数据(只考虑字母数字),然后再判断是否是回文串,注意要统一大小写。想到两种方式拿到纯净的数据第一种是用asc码+arr.filter()进行筛选第二种考虑用正则拿到数据之后使用数组api:reverse()和join()直接对比字符串返回结果。代码如下var isPalindrome = function(s) { if(!s) return true; let arr = []; for(let i=0;i<s.length;i++){.

2021-07-16 10:50:42 134

原创 leetcode55、45.跳跃游戏 I&II

如果某一个作为起跳点的格子可以跳跃的距离是3,那么表示后面的3个格子都可以作为。 可以对每一个能作为起跳点的格子都尝试跳一次,把能跳到最远的距离不断更新。 如果可以一直跳到最后,就成功了。否则在过程中返回false退出/** * @param {number[]} nums * @return {boolean} */var canJump = function(nums) { let range = 0; for(let i=0;i<nums.length;i+...

2021-07-15 11:08:46 192

原创 剑指offer 62【Js】

很有意思的一道题,暴力超时之后看到了一种巧妙地数学解法。约瑟夫环【逆推迭代】逆推公式:当前index = 上轮(index+m)% 剩余个数i/** * @param {number} n * @param {number} m * @return {number} */var lastRemaining = function(n, m) { let index = 0; for(let i=2;i<=n;i++){ index = (index+m.

2021-07-13 10:47:51 81

原创 剑指offer 50【Js】

方法一:使用indexOf Api,判断最初出现和最后出现位置是否一致,一致则直接输出。否则输出空。var firstUniqChar = function(s) { for(let x of s){ if(s.indexOf(x) === s.lastIndexOf(x)) return x } return ' '};方法二:使用map把值和出现次数映射,然后再找出第一个出现次数为1的值/** * @param {string} s * @r.

2021-07-12 11:10:14 100

原创 Js常见排序算法整理

1、冒泡排序冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序工作。const bubbleSort = (num) => { for (let i = 0; i < num.length - 1; i++) { console.log("FIRST"); let flag = 0; for (let p = 0; p

2021-07-07 14:29:20 264

原创 剑指Offer 39

原地数组时间复杂度空间复杂度较高/** * @param {number[]} nums * @return {number} */var majorityElement = function(nums) { let len = nums.length; let arr = Array(50000).fill(0); for(let i=0;i<len;i++){ if(!arr[nums[i]]){ arr[nums[i].

2021-07-06 10:40:07 111

原创 剑指offer 29/leetcode 54 螺旋矩阵【js】

按照→↓←↑ 的顺序进行遍历,每次走完一边都要判断是否已经符合要求即res数组长度等于row*colomn代码如下:/** * @param {number[][]} matrix * @return {number[]} */var spiralOrder = function(matrix) { if(!matrix.length) return []; let row = matrix.length; let comlumn = matrix[0].length.

2021-07-01 10:27:12 89

ctf图片隐写神器Stegsolve

包含Stegsolve.jar//需要安装java环境 在分析里面从上到下的依次意思是 File Format:文件格式 Data Extract:数据提取 Steregram Solve:立体试图 可以左右控制偏移 Frame Browser:帧浏览器 Image Combiner:拼图,图片拼接

2020-12-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除