
算法
文章平均质量分 73
忧伤的肚腩
华中科技大学计算机专业在读
展开
-
Leetcode 51. N-Queens
视频讲解 八皇后问题 1.同一列不能碰撞同一列不能碰撞对角线不能碰撞 斜线反斜线回溯算法基础的代码,每一列来处理即可,其中入口是第一列到第八列,每一列中的循环有八个位置可以选择,判断每个位置是否可以选择,主程序的基础结构dfs(结果存储res, 开始列表, 开始列 ==0)dfs设计(深度优先遍历设计) 如果到达最后一列(满足题...原创 2018-07-28 20:08:22 · 190 阅读 · 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 评论 -
Leetcode98: Validate Binary Search Tree
二叉查找树二叉树层次遍历树的中序遍历基础知识,一个栈,while(没有走到最左边的节点 | | 栈不为空 ) 1.(还没有走到最左边的节点)最左边(该节点一定没有孩子节点了)不断入栈,直到把左边的元素全部压入栈 2.(栈不为空)弹出后再处理访问该元素,再访问(有可能有,也有可能没有元素)其右节点(对其右孩子节点继续执行步骤1), 弹出一个...原创 2018-09-07 18:37:16 · 131 阅读 · 0 评论 -
Ugly Number II
丑数的定义: 因素分解后因子只包含2,3,5(由这三个数的组成,不一定要三个都用上,也可以使用多个相同的情况)的数 比如 10= 2*5, 给定一个数,找到第n个丑数比如输入10,找到第10个丑数, Input: n = 10 Output: 12 Explanation: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 is the sequence of the ...原创 2018-09-07 15:09:41 · 107 阅读 · 0 评论 -
Leetcode:264. Ugly Number II
描述Write a program to find the n-th ugly number.Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. Example:Input: n = 10 Output: 12 Explanation: 1, 2, 3, 4, 5, 6, 8, ...原创 2018-09-08 16:03:18 · 145 阅读 · 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 评论 -
Leetcode95. Unique Binary Search Trees II and I
分析这道题目采用二分法和递归方法·解决, 1<=i<=n, i代表root, [1,i-1] 为有节点 [i, n] 为右节点,然后左右两边又不断分治的方法解决 分而治之用于归并排序类似于这种方法就是 代码书写流程递归递归判断条件,递归的出口文件对原始问题进行处理,处理左边,处理右边合并两边结果从宏观上把握这种情况归并排序对算法: ...原创 2018-09-04 17:33:50 · 339 阅读 · 0 评论 -
Leetcode 121. Best Time to Buy and Sell Stock
题目描述一个一维数组代表着股票的价值,可以执行两个操作,一个是买操作,一个是卖操作,如何能让利润最大化, 说白了就是如何让差价最大话,在卖股票之前必须进行股票的购买操作,每个操作只最多只能执行一次。 Example 1:Input: [7,1,5,3,6,4] Output: 5 Explanation: Buy on day 2 (price = 1) and sell on d...原创 2018-08-24 14:52:38 · 109 阅读 · 0 评论 -
Leetcode 122:买卖股票二
题目描述https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/description/与第一次的题目相比,可以多次买卖等情况,只要求出最大利润即可, 可以将一次买卖分为过个过程即可; [1,2,3,4,5] 比如正常情况下是第一天买进,第五天卖出,但这个过程可以分解为多次买进卖出 在第一天买进,第二天卖出,获得利...原创 2018-08-31 14:57:59 · 165 阅读 · 0 评论 -
213. House Robber II
题目描述每个房子有一定的钱条件 不能偷相邻房子的钱条件 第一个房子和最后一个房子相邻,围成一个圆形,也就是不能同时偷第一个房子和最后一个房子的钱解题思路如果抢劫第一家,则不可以抢最后一家;否则,可以抢最后一家。因此,这个问题就转化成为了两趟动规,可以复用 “House Robber” 的代码。对第一个房子到倒数第二个房子进行动态规划, 对第二个房子到最后一个房子进行动...原创 2018-08-22 11:00:06 · 179 阅读 · 0 评论 -
Leetcode 79. Word Search
题目描述Given a 2D board and a word, find if the word exists in the grid.The word can be constructed from letters of sequentially adjacent cell, where “adjacent” cells are those horizontally or vertic...原创 2018-08-11 18:15:46 · 116 阅读 · 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 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 评论 -
树的四种遍历方式
树的中序遍历非递归思路使用stack替换掉递归while(两种情况) (1)一直走到树的最左边结点,把左边的结点全部压入stack, (2)走完左边的结点后,出stack, 继判断是否最左边的结点是否有右结点 如果有右结点,则对这个子树执行(1)中同样的操作,回到步骤一 2.出stack的同时访问结点代码(Java) // Def...原创 2018-07-29 11:48:55 · 21905 阅读 · 2 评论 -
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 评论