随笔分类 - 编程题
摘要:class TreeNode { value: number left: TreeNode | null right: TreeNode | null constructor( value: number = 0, left: TreeNode | null = null, right: TreeN
阅读全文
摘要:class TreeNode { value: number left: TreeNode | null right: TreeNode | null constructor( value: number = 0, left: TreeNode | null = null, right: TreeN
阅读全文
摘要:class ListNode { value: number next: ListNode | null constructor(value: number = 0, next: ListNode | null = null) { this.value = value this.next = nex
阅读全文
摘要:链表结构 class ListNode { value: number next: ListNode | null constructor(value: number, next: ListNode | null) { this.value = value this.next = next } }
阅读全文
摘要:原理:递归拆分数组到容量为1的两区间,然后两两比较,再合并回来。 单步视频图文教学: https://www.youtube.com/watch?v=4VqmGXwpLqc function mergeSort(arr: number[]): number[] { // 递归退出条件 if (arr
阅读全文
摘要:function fib(n: number): number { if (n == 0 || n 1) { return n } return fib(n - 1) + fib(n - 2) } console.log(fib(5)) // 5 console.log(fib(11)) // 89
阅读全文
摘要:递归 function binarySearch(arr: number[], target: number, left: number = 0, right: number = arr.length - 1): number { if (left > right) { return -1 } co
阅读全文
摘要:递归 function decimalToBinary(decimal: number, result: string = ""): string { if (decimal 0) { return result } result = decimal % 2 + result return deci
阅读全文
摘要:递归 function isPalindrome(s: string): boolean { if (s.length 0 || s.length 1) { return true } if (s.charAt(0) s.charAt(s.length - 1)) { return isPalind
阅读全文
摘要:递归做法 pros: 不占用额外空间 cons: 输入太长会爆栈 function reverseString(s: string): string { if (s "") { return "" } return reverseString(s.substring(1)) + s.charAt(0
阅读全文