
数据结构
文章平均质量分 82
忧伤的肚腩
华中科技大学计算机专业在读
展开
-
Leetcode 51. N-Queens
视频讲解 八皇后问题 1.同一列不能碰撞同一列不能碰撞对角线不能碰撞 斜线反斜线回溯算法基础的代码,每一列来处理即可,其中入口是第一列到第八列,每一列中的循环有八个位置可以选择,判断每个位置是否可以选择,主程序的基础结构dfs(结果存储res, 开始列表, 开始列 ==0)dfs设计(深度优先遍历设计) 如果到达最后一列(满足题...原创 2018-07-28 20:08:22 · 190 阅读 · 0 评论 -
树的四种遍历方式
树的中序遍历非递归思路使用stack替换掉递归while(两种情况) (1)一直走到树的最左边结点,把左边的结点全部压入stack, (2)走完左边的结点后,出stack, 继判断是否最左边的结点是否有右结点 如果有右结点,则对这个子树执行(1)中同样的操作,回到步骤一 2.出stack的同时访问结点代码(Java) // Def...原创 2018-07-29 11:48:55 · 21905 阅读 · 2 评论 -
Leetcode 82. Remove Duplicates from Sorted List II
题目描述Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.Example 1:Input: 1->2->3->3->4->4->5 Output:...原创 2018-07-31 11:56:42 · 129 阅读 · 0 评论 -
Leetcode 33. Search in Rotated Sorted Array
题目描述将有序数组打乱,然后从中查找一个数据的下标 Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.(i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]).You are given a targ...原创 2018-07-31 20:41:08 · 140 阅读 · 0 评论 -
Leetcode 123. Best Time to Buy and Sell Stock III
题目分析最多只能买卖两次,发生两次交易行为,求最大利润# III是这三题中最难的。允许两次买卖,但同一时间只允许持有一支股票。也就意味着这两次买卖在时间跨度上不能有重叠(当然第一次的卖出时间和第二次的买入时间可以是同一天)。既然不能有重叠可以将整个序列以任意坐标i为分割点,分割成两部分: prices[0:n-1] => prices[0:i] + prices[i...原创 2018-09-02 11:15:51 · 153 阅读 · 0 评论 -
# 洗牌算法
基本概念等概率将将一个数组N打乱,概率每次都是1/N,加上方法一全局洗牌, 从 0到N-1的数组下标,每次随机产生两个0到 N-1之间的数,进行交换void get_rand_number(int array[], int length){ int index; int value; int median; if(NULL == array || 0 == length)...原创 2018-09-20 08:57:51 · 193 阅读 · 0 评论 -
141.判断链表是否有环操作
单链表与环的情况1.判断链表是否有环对于这个问题我们可以采用“快慢指针”的方法。就是有两个指针fast和slow,开始的时候两个指针都指向链表头head,然后在每一步操作中slow向前走一步即:slow = slow->next,而fast每一步向前两步即:fast = fast->next->next。由于fast要比slow移动的快,如果有环,fast一定...原创 2018-09-15 09:42:20 · 130 阅读 · 0 评论 -
Edit distance(二维动态规划题目)
题目1 Edit Distance传统动态规划问题,两个字符串不一样,对第一个字符每一个位置可以进行删除,修改或者增加,将第一个字符串改成第二个字符串,求最小的操作数a) Insert a characterb) Delete a characterc) Replace a character第一字符串长度为m, 长度为n;方法:可见要求DP[i+1][j+1],必须要知道二维矩阵中...原创 2018-09-22 11:45:22 · 149 阅读 · 0 评论 -
红黑树与AVL树的区别
文章目录红黑树与AVL树的区别红黑树的一个案列英文答案红黑树的高度问题红黑树的优点与AVL树的比较相同点使用红黑树为何能比AVL树高效的原因分析红黑树的应用领域java 集合类和c ++ STLLinux选择RBTree 还是 AVL参考链接红黑树与AVL树的区别红黑树的一个案列Root is always black.(根结点是黑的。)All NULL leaves are blac...原创 2018-11-14 11:58:32 · 3245 阅读 · 0 评论