自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

下半年记忆的博客

我很平凡,但我在努力向前

  • 博客(112)
  • 收藏
  • 关注

原创 IOS swift使用导航栏实践

ios中不使用app创建时自带的main.storyboard创建导航栏,而采用swift代码控制导航栏实践demo

2022-08-27 23:32:34 861 1

原创 IOS Demo -下拉刷新实践(Swift)

Demo环境:IOS 15,Xcode 13, swift。

2022-08-26 22:23:50 1096 1

原创 IOS手势 UIGestureRecognizer实践(Swift)

IOS UIGestureRecognizer手势实践demo

2022-08-23 23:25:21 1193

原创 Android webview加载页面获取摄像头权限实践(Kotlin)

Android webview加载页面获取摄像头权限实践(Kotlin)

2022-08-21 19:28:54 3188

原创 WKWebView加载Web本地项目实践(Swift)

Ios app加载本地web项目实践

2022-08-21 18:06:16 763 1

原创 IOS Demo -定时器

ios demo 定时器

2022-07-28 21:18:38 470

原创 IOS Demo -字体切换demo

ios demo 切换字体

2022-07-28 21:13:07 405

原创 IOS Demo - FindMyPosition

ios demo,find my position

2022-07-28 21:04:22 464

原创 openCV圆形识别人脸框Demo(javascript)

opencv.js demo

2022-06-07 17:27:46 595

原创 刷题记录(Find Bottom Left Tree Value)

Leecode: Find Bottom Left Tree Value(JS解答) function findBottomLeftValue(root: TreeNode | null): number { let resArr:number[] = []; helper(root, 0, resArr); return resArr[resArr.length-1]; }; function helper(root: TreeN

2021-05-25 17:49:17 87

原创 刷题记录(Counting Bits)

Leecode: Counting Bits(JS解答)思路:res数组表示所求结果集,preIndex = i&(i-1)表示把i的最后一位1变为0; function countBits(n: number): number[] { let res:number[] = new Array(n+1).fill(0); for(let i = 1; i <= n; i++){ let preIndex = i&(i-1

2021-05-25 16:05:04 70

原创 刷题记录(Maximum Swap)

Leecode:Maximum Swap(JS解答)思路:使用一个数组存下 0-9每个数字在num中,从左向右遍历,最后出现时的index位置 function maximumSwap(num: number): number { let numArr = String(num).split(""); let lastArr:number[] = new Array(10).fill(-1); //每个数字最后一次出现的位置 for(let i

2021-05-24 15:12:22 92

原创 刷题记录(Delete Node in a BST)

Leecode: Delete Node in a BST(JS解答)解题思路:删除节点前,先通过搜索二叉树的性质找到要删除的节点,找到后,关键的地方来了,被删除节点可能存在以下三种情况:1,叶子节点,左右子节点为null,这种可以直接删除2,左子节点不为空,则需要获取左子树的最大值,然后删除当前节点,遍历调节左子树3,右子节点不为空,则获取右子树的最小值,删除当前节点,遍历调节右子树上代码: function deleteNode(root: TreeNode | null, key:

2021-05-09 23:11:44 62

原创 刷题记录(Find Mode in Binary Search Tree)

Leecode: Find Mode in Binary Search Tree思路:中序遍历的时候,重复的数字会连续出现,这是解题的关键上代码: function findMode(root: TreeNode | null): number[] { let base = 0, count = 0, maxCount = 0, res:number[] = []; dfs(root); return res; function h

2021-05-09 22:58:46 78

原创 刷题记录(Increasing Subsequences)

leecode: Increasing Subsequences(JS解答)直接上代码: function findSubsequences(nums: number[]): number[][] { let res:number[][] = []; let temp:number[] = []; helper(0, Number.MIN_SAFE_INTEGER,nums); return res; function help

2021-05-09 22:53:16 84

原创 刷题记录(Number of Matching Subsequences)

Leecode:Number of Matching Subsequences(JS解答)解题思路:这里采用桶排序的思路,先把words数组按照首字母进行分组,例如:[“a”,“bb”,“acd”,“ace”]=》 “a" : “a”,“acd”,“ace”; “b” : “bb”;然后开始遍历s字符,如examper1中的s:遍历到s【0】(“a”),words => “c” : “cd”,“ce”; “b” : “bb”;遍历到s【1】(“b”),words => “c” :

2021-05-09 22:42:59 122

原创 刷题记录(Count Complete Tree Nodes)

Leecode:Count Complete Tree Nodes(JS解答)解法一:暴力搞起 function countNodes(root: TreeNode | null): number { if(root == null) return 0; let left = countNodes(root.left); let right = countNodes(root.right); return left + right +

2021-05-04 17:38:13 86

原创 刷题记录(Binary Tree Right Side View)

Leecode: Binary Tree Right Side View(JS解答)dfs思路: function rightSideView2(root: TreeNode | null): number[] { let res:number[] = []; helper(root, 0); return res; function helper(root: TreeNode | null, depth: number){

2021-05-04 10:55:31 68

原创 刷题记录(Target Sum)

Leecode: Target Sum (JS解答)解题思路:采用动态规划的思路,首先得出状态转移方程式:dp[i][j] = dp[i - 1][j - nums[i]] + dp[i - 1][j + nums[i]];但是这个不能拿来直接用,因为dp[i][j]依赖dp[i - 1][j - nums[i]],关键是这个nums[i],构成环状依赖了,所以需要对方程式进行变形处理才可以用:dp[i][j] += dp [i-1][j-nums[i]]dp[i][j] += dp [i-1]

2021-04-27 18:33:15 115

原创 刷题记录(Relative Sort Array)

Leecode: Relative Sort Array(JS解答)直接上代码: function relativeSortArray(arr1: number[], arr2: number[]): number[] { let count:number[] = new Array(1001).fill(0); for(let i = 0; i < arr1.length; i++){ count[arr1[i]]++; }

2021-04-14 10:51:30 75

原创 刷题记录(Reorganize String)

Leecode: Reorganize String(JS解答)解题思路:先用一个数组统计每个字母出现的次数,查看出现次数最高字母的次数,如果次数大于字符串长度的一半,则直接返回空字符串结果,因为不存在符合条件的答案下一步,先把出现次数最多的字母填在结果集的偶数位,填完之后选择下一字母继续填在后面的偶数位,如果超出字符串长度,则开始填奇数位上代码: function reorganizeString(S: string): string { let count:number[]

2021-04-13 11:44:22 64

原创 刷题记录(House Robber II)

Leecode: House Robber II (JS解答)解题思路:与此问题的前一个题目相比,此题改动的地方在于把链转改为环状,于是作为起始时,起始点有两种情况,偷与不偷,获取这两种情况下值最大的那个直接上代码,helper方法为动态规划思路方法: function rob(nums: number[]): number { if(nums.length == 0) return 0; if(nums.length == 1) return nums[0];

2021-04-01 18:13:16 58

原创 刷题记录(Maximal Square)

leecode: Maximal Square (JS解答)解题思路: 使用动态规划的思路解题,所以重点就是转移方程式:dpArr[i][j] = Math.min(dpArr[i-1][j-1] ,dpArr[i-1][j] ,dpArr[i][j-1]) + 1;在这里,dpArr[i][j]代表以matrix[i][j]为右下角的符合条件的正方形上代码: function maximalSquare(matrix: string[][]): number { if(

2021-04-01 18:06:16 66

原创 刷题记录(K-diff Pairs in an Array)

Leecode: K-diff Pairs in an Array(JS解答)直接上代码: function findPairs(nums: number[], k: number): number { if(k < 0) return 0; let saw = new Set(); let diff = new Set(); for(let num of nums){ if(saw.has(num+k)

2021-03-29 17:15:14 61

原创 刷题记录(Unique Binary Search Trees II)

Leecode: Unique Binary Search Trees II(JS解答) function generateTrees(n: number): Array<TreeNode | null> { let res: Array<TreeNode | null> = []; if(n == 0) return res; return helper(1, n); }; function helpe

2021-03-29 16:45:12 84

原创 刷题记录(Partition List)

Leecode: Partition List(JS解答)直接上代码: function partition(head: ListNode | null, x: number): ListNode | null { let minTemp: ListNode = new ListNode(0); let maxTemp: ListNode = new ListNode(0); let pointMax: ListNode = maxTemp;

2021-03-23 16:06:43 79

原创 刷题记录(Path Sum III)

Leecode:Path Sum III(JS解答)思路:贴一个力扣社区的解说图解,通俗易懂上代码:function pathSum(root: TreeNode | null, sum: number): number { let prefixMap:any = {}; let target:number = sum; prefixMap[0] = 1; return recur(root, 0); functi

2021-03-20 15:48:52 78

原创 刷题记录(Array Nesting)

Leecode:Array Nesting(JS解答)解题思路:按照题意,形成环状的结果集中的每一个元素只会出现在这个结果集的环里面,而不会出现其他结果集的环里面,于是遍历以每一个元素为起点的环的时候可以用一个布尔数组存储这些已经出现过的节点,因为它不会再出现在其他的环里面,从而提升性能上代码: function arrayNesting(nums: number[]): number { let visited:boolean[] = new Array(nums.length

2021-03-04 18:16:10 91 1

原创 刷题记录(Find All Duplicates in an Array)

Leecode:Find All Duplicates in an Array(JS解题)解题思路:用原数组来作为存储数值位置的数组,第一次遍历的时候进行取反操作,当操作过程中遇到负数,说明遇到了重复数值,压入结果集上代码: function findDuplicates(nums: number[]): number[] { let res:number[] = []; for(let i = 0; i < nums.length; i++){

2021-03-03 11:52:52 125

原创 刷题记录(Subarray Sum Equals K)

Leecode:Subarray Sum Equals K(JS解答)思路:采用哈希表加前缀和的思路来解题 function subarraySum(nums: number[], k: number): number { let mapobj:any = {}; let count = 0; let temp = 0; mapobj[0] = 1; for(let i = 0; i < nums.length

2021-03-03 11:47:07 104

原创 刷题记录(Find Minimum in Rotated Sorted Array II)

Leecode: Find Minimum in Rotated Sorted Array II(JS解答)思路:采用二分法,注意当出现重复元素时的处理,上代码: function findMin(nums: number[]): number { let start = 0; let end = nums.length-1; while (start < end){ let pivot = (start + end)

2021-02-24 18:08:26 62

原创 刷题记录(Triangle)

Leecode:Triangle(JS答题)思路:采用动态规划的思路来解题,状态转换是注意每层两端的状态转移特殊处理一下上代码: function minimumTotal(triangle: number[][]): number { let n:number = triangle.length; let f:number[][] = new Array(n); let res:number; for(let i = 0; i <

2021-02-19 16:43:15 65

原创 刷题记录(Trapping Rain Water)

Leecode:Trapping Rain Water(JS解答)思路一:动态规划,遍历1 - height.length-2之间的元素,每个元素向两端扩展 function trap(height: number[]): number { let leftHeight:number[] = new Array(height.length).fill(0); let rightHeight:number[] = new Array(height.length).fi

2021-02-18 18:12:06 63

原创 刷题记录(Subsets II)

Leecode:Subsets II(JS解答)思路:先对数组进行排序,让后采用回溯的办法求结果集合 function subsetsWithDup(nums: number[]): number[][] { let res:number[][] = []; nums.sort((a,b)=>a-b); helper(nums,0,[],res); return res }; function helper(nums:

2021-02-18 18:05:51 87

原创 刷题记录(Reorder List)

Leecode: Reorder List(JS解答)解题思路:用一个数组按顺序存储所有节点,让后用前后两个指针遍历数组,重构单向链表,上代码: function reorderList(head: ListNode | null): void { if(head == null || head.next == null) return; let nodeList:ListNode[] = []; while (head != null){

2021-02-16 18:22:21 152

原创 刷题记录(Combinations)

Leecode:Combinations(JS解答)直接上代码: function combine(n: number, k: number): number[][] { let res:number[][] = new Array(); let tempArr:number[] = new Array(); helper(res,[],1,n,k); return res; }; function helper(res:n

2021-02-16 17:45:38 103

原创 刷题记录(Combination Sum)

Leecode:Combination Sum(JS解答)思路:利用回溯算法 function combinationSum(candidates: number[], target: number): number[][] { let res:number[][] = new Array(); if(candidates.length == 0) return res; candidates.sort((a,b)=>a-b); //这里排序是

2021-02-02 17:17:34 79

原创 刷题记录(Remove Duplicates from Sorted Array II)

Leecode: Remove Duplicates from Sorted Array II(JS解答) function removeDuplicates(nums: number[]): number { let j = 1; let count = 1; for(let i = 1; i < nums.length; i++){ if(nums[i] == nums[i-1]){ c

2021-01-28 16:58:55 76

原创 刷题记录(Spiral Matrix II)

Leecode:Spiral Matrix II(JS解答)直接上代码: function generateMatrix(n: number): number[][] { let total:number = n * n; let l = 0; let r = n-1; let t = 0; let b = n-1; let res:number[][] = new Array(n); l

2021-01-28 16:54:53 77

原创 刷题记录(Search a 2D Matrix)

Leecode:Search a 2D Matrix(JS解答)思路:在二维数组里面找目标值是否存在,因为题目给定的条件,每一行的第一个数大于上一行的最后一个数,于是我们直接把它当成一个一位数组,让后用二分法进行解题: function searchMatrix(matrix: number[][], target: number): boolean { let totalNum:number = matrix.length * matrix[0].length; let

2021-01-28 16:50:27 82

空空如也

空空如也

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

TA关注的人

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