序言 我第一次接触递归,是在大三的时候。 原谅我,我不是计算机专业学生,大三才开始自学代码。 还记得当时的题目是:一只猴想摘树上的桃,他可以一次摘1个,也可以一次摘2个,总共n个桃,他有多少种摘法? 明显递归可以完美解决,但是当时我想了好几个小时都没想出思路。 那一夜,我就感觉自己就是那条猴。 一 ...
分类:
其他好文 时间:
2021-03-09 13:12:50
阅读次数:
0
归并排序介绍: 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer) 策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修 补"在一起,即分而治之)。 归并排序 ...
分类:
编程语言 时间:
2021-03-08 14:00:17
阅读次数:
0
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val ...
分类:
其他好文 时间:
2021-03-08 13:28:22
阅读次数:
0
深复制和浅复制只针对像 Object, Array 这样的复杂对象的。 简单来说,浅复制只复制一层对象的属性,而深复制则递归复制了所有层级。 比如浅拷贝: 当B拷贝了A的数据,且当B的改变会导致A的改变时,此时叫B浅拷贝了A,例如: //浅拷贝 var A={ name:"martin", data ...
分类:
其他好文 时间:
2021-03-05 13:26:34
阅读次数:
0
//在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 //// 示例 1: //// 输入: 4->2->1->3//输出: 1->2->3->4// //// 示例 2: //// 输入: -1->5->3->4->0//输出: -1->0->3->4->5 // Rel ...
分类:
编程语言 时间:
2021-03-05 13:21:06
阅读次数:
0
Object.defineProperty 劫持数据 只是对对象的属性进行劫持 无法监听新增属性和删除属性 需要使用 vue.set, vue.delete 深层对象的劫持需要一次性递归 var obj = { a: 1, o: { b: 2, o1: {} } } 无法监听原生数组,需要特殊处理, ...
分类:
其他好文 时间:
2021-03-05 12:56:07
阅读次数:
0
递归: 没问题 function deepClone(obj) { var target = {}; for(var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { // 如果obj有key这个属性的话 if ( ...
分类:
编程语言 时间:
2021-03-03 12:36:03
阅读次数:
0
至少有 K 个重复字符的最长子串 递归的方式 对于这个字符串来说,如果某个字符(比如t)的数量小于k的话,那么满足要求的一定在用t分割的字符串的所有字串中。运用这种思想,可以使用递归的方法来求解。代码如下 class Solution { /** * @param String $s * @para ...
分类:
其他好文 时间:
2021-03-03 12:10:53
阅读次数:
0
1 ;WITH Numbers AS ( SELECT n = 1 UNION ALL SELECT n + 1 FROM Numbers WHERE n+1 <= 10 ) SELECT n FROM Numbers ...
分类:
数据库 时间:
2021-03-03 12:08:20
阅读次数:
0
挖坑填数方 从数列中挑出一个元素,称为 "基准"(pivot); 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作; 递归地(recursive)把小于 ...
分类:
编程语言 时间:
2021-03-02 12:25:49
阅读次数:
0