
LeetCode
文章平均质量分 61
ziyonghong
爱编程有追求的热血青年
展开
-
全排序
全排列就是从第一个数字起每个数分别与它后面的数字交换。void Perm(int list[] , int k ,int m) { //list 数组存放排列的数,K表示层 代表第几个数,m表示数组的长度 if(k==m) { //K==m 表示到达最后一个数,不能再交换,最终的排列的数需要输出; for(int i=0 ;i<=m ;i++) cout<<list[i]; cout<<endl; } else{ for(i.原创 2020-05-12 21:02:46 · 670 阅读 · 0 评论 -
LeetCode中BFS总结
广度优先搜索的搜索过程有像一层一层地进行遍历,每层遍历都以上一层遍历的结果作为起点,遍历一个长度。实现 BFS 时需要考虑以下问题: 队列:用来存储每一轮遍历的节点; 标记:对于遍历过的节点,应该将它标记,防止重复遍历。 只能用来求解无权图的最短路径问题。 典型例题就是:计算在网格中从原点到特定点的最短路径长度 。leetcode102. Bin...原创 2020-03-15 23:20:47 · 605 阅读 · 0 评论 -
TopK问题之堆排序
堆排序用于求解 TopK Elements 问题,通过维护一个大小为 K 的堆,堆中的元素就是 TopK Elements。当然它也可以用于求解 Kth Element 问题,因为最后出堆的那个元素就是 Kth Element。 快速选择也可以求解 TopK Elements 问题,因为找到 Kth Element 之后,再遍历一次数组,所有小于等于 Kth E...原创 2020-03-01 20:59:53 · 328 阅读 · 0 评论 -
Leetcode122 Best Time to Buy and Sell StockII之贪心算法
原题链接:https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/解题思路:局部最优解即为全局最优解(具有最优子结构性质),所以每次出现收益就累加收益,具有贪心选择性质(即所求问题的整体最优解可以通过一系列局部最优的选择--贪心选择来达到)。class Solution { public int maxPr...原创 2019-01-06 21:02:36 · 269 阅读 · 0 评论 -
Leetcode123 Best Time to Buy and Sell StockIII之动态规划
原题链接: http://oj.leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/假设你有一个数组,它的第i个元素是一支给定的股票在第i天的价格。设计一个算法来找到最大的利润。你最多可以完成两笔交易。然而,你不能同时参与多个交易(你必须在再次购买前出售股票)。思路:这个问题可以转换成121的Best Time to Bu...原创 2019-01-04 14:53:56 · 184 阅读 · 0 评论 -
Leetcode 241. Different Ways to Add Parentheses之分治算法
原题链接:Different Ways to Add Parentheses (Medium) 给表达式加括号分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同,递归求出这些子问题,然后再将各自问题的解合并便得到原问题的解了。 (“分-治-合” 的一个过程)本题以操作符为分界,将字符串分解为较小的两个子字符串,然后依次对两个子字符串进行...原创 2019-01-03 14:54:22 · 369 阅读 · 0 评论 -
Leetcode382:Linked List Random Node
题目要求:给定一个链表,随机输出链表中的一个数,要求每个数输出的概率相等。思路: 可以先计算出链表长度, 然后随机一个在长度范围内的值, 走到那里将值返回即可. 但是如果长度无限大, 就无法计算长度了, 这种情况下用一个水池抽样的算法, 其原理为一个个的对元素取样, 在遍历到每个元素的时候可以有个概率选取, 或者不选取。具体:1、初始答案为第一个数,此时链表的下标指向第一个数,即此时第一个...原创 2018-12-03 20:22:09 · 175 阅读 · 0 评论 -
LeetCode TwoSum II &&TwoSum III
TwoSumLeetCode 上的第一道TwoSum 是这样的Given an array of integers, find two numbers such that they add up to a specific target number。(在一个给定的数组中找两个数相加等于某个特定值,返回这两个数在数组中的下标)第一种解法粗暴简单。直接暴力法遍历两次数组,时间复杂度...原创 2018-11-22 15:12:56 · 138 阅读 · 0 评论