![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
alex_mist
coding....
展开
-
腾讯2017暑期实习生编程题--删除最少的元素,获得最长回文串
题目 典型的动态规划,和leetcode第6题最长回文字串很类似,难点在于写出构造方程(废话。。),在于当左右指针不等的时候如何推出结果! #include<string> #include<iostream> #include<vector> using namespace std; int Solution(string s){ int length = s.size(); vector<vector<int>> dp(len原创 2020-10-22 14:04:07 · 193 阅读 · 1 评论 -
leetcode-合并K个升序链表之分治法+优先队列
题目 对于K个链表的情况,不先求两个升序链表分治的情况!这正好是leetcode的一个简单题:合并两个有序链表 合并两个有序链表 解法一:新建一个链表,每次插入l1和l2中value小的那一个: class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode* res = new ListNode; res->next = NULL;原创 2020-09-29 10:09:14 · 189 阅读 · 0 评论 -
leetcode-不同路径之动态规划
分析 一开始没往动态规划上想,因为这用纯数学的方法是可以做的; 因为m×n的棋盘,一定是需要m-1次向右和n-1次向下才可以到达最右下角的,因此我们把m-1次向右当作m-1个A元素,而n-1次向下当作n-1个B元素,而m-1个A元素有m个空,只需将n-1个B元素插入m个空即可; 但是还要注意,这里不是一个萝卜一个坑,可以多个萝卜插一个坑,也就是可以多个B一起放在一个空中; 动态规划还是很好分析的,定义dp数组: dp[i][j]代表从(0,0)到(i,j)位置的路径种类数量,因为一次只能向下或向右走,得到.原创 2020-07-05 15:06:49 · 161 阅读 · 0 评论 -
leetcode-使用最小花费爬楼梯之动态规划
题目 这个题和那个问爬楼梯有多少种方案的题很类似,同样也是动态规划; 在一个位置上,要么落在该位置上,要么跳过这个位置,因此添加一维状态: dp[i][0]表示不落在也就是跳过i位置上的最小花费,dp[i][1]表示落在i位置的最小花费; 那么得到状态转移方程: dp[i][1] = min(dp[i-2][1]+cost[i],dp[i-1][1]+cost[i]); //落在i位置,那就肯定要...原创 2020-04-17 21:49:22 · 166 阅读 · 0 评论 -
浅析动态规划-leetcode最大子序和,买卖股票的最佳时间
自言自语 昨天在leetcode上遇到两个难度为简单的题,但是花了很长时间都没做出来,极度的郁闷怀疑自己的智商。看到题解后又感叹这种巧妙的办法是怎么想出来的。其实这两个问题都是用大名鼎鼎的“动态规划”破解的,要是掌握了动态规划的通式方法,其实也并不难。 动态规划 在知乎上看到一个很有意思的解释,大概是这么个意思: 请求出1+1+1+1+1+1+1+1=?数了数8个1,等于8。那么再+1等于多少呢,...原创 2020-04-16 10:36:45 · 151 阅读 · 0 评论 -
leetcode-加油站之贪心算法和最小子序和
class Solution { public: int canCompleteCircuit(vector<int>& gas, vector<int>& cost) { int remain = 0; for(int i=0;i<cost.size();i++) { r...原创 2020-04-15 18:34:40 · 169 阅读 · 0 评论 -
leetcode-柠檬水找零之贪心算法
题目 思路: 一共只有三种钱币,5元,10元和20元;能不能成功找零取决于自己兜里这三种钱币的数量;其实只看两种,5元和10元,因为20元找零15,因此找零的时候根本用不上20;因此只需要每次找零更新5和10元的数量就可以了; 遇到5元时:不需找零,直接5元的数量+1 遇到10元时,要是没有5元了,无法找零,说明失败 遇到20元时,两种找零策略:找3个5,或是一个10,一个5;而这里就体现出了贪...原创 2020-04-14 12:56:57 · 243 阅读 · 0 评论 -
leetcode-分发饼干之贪心算法
前段时间回溯法,DFS,BFS做的差不多了,今天开始尝试四大算法中的贪心算法; 四大算法是哪四大? 贪心算法 分而治之算法(递归) 动态规划 穷举法 据说百分之95的算法问题都可以归类属于它们; 假设一个问题比较复杂,暂时找不到全局最优解,那么我们可以考虑把原问题拆成几个小问题(分而治之思想),分别求每个小问题的最优解,再把这些“局部最优解”叠起来,就“当作”整个问题的最优解了。 贪心算法就是...原创 2020-04-10 10:56:57 · 320 阅读 · 0 评论