51nod 1118 机器人走方格: 思路:这是一道简单题,很容易就看出用动态规划扫一遍就可以得到结果, 时间复杂度O(m*n).运算量1000*1000 = 1000000,很明显不会超时. 递推式子:dp[i][j] = dp[i-1][j] + dp[i][j-1].  dp[i][j]表示当规格为i*j  (m = i && n = j)  时本题的结果. 直接上代码: #include <stdio.h> #include <string.h> #defi…
如何学好动态规划(2) 原创 Gene_Liu LeetCode力扣 今天 算法萌新如何学好动态规划(1) https://mp.weixin.qq.com/s/rhyUb7d8IL8UW1IosoE34g 动态规划概述 动态规划(Dynamic Programming),因此常用 DP 指代动态规划.本块内容我们主要讲解「动态规划解题思路」与「动态规划问题类别」. 动态规划解题思路 动态规划主要分为两个核心部分,一是确定「DP 状态」,二是确定「DP 转移方程」. DP 状态 「DP 状态」的…
前篇戳:dp入门——由分杆问题认识动态规划 导语 刷过一些算法题,就会十分珍惜“方法论”这种东西.Leetcode上只有题目.讨论和答案,没有方法论.往往答案看起来十分切中要害,但是从看题目到得到思路的那一段,就是绕不过去.楼主有段时间曾把这个过程归结于智商和灵感的结合,直到有天为了搞懂Leetcode上一位老兄的题型总结,花两天时间学习了回溯法,突然有种惊为天人的感觉——原来真正掌握一个算法是应该触类旁通的,而不是将题中一个细节换掉就又成了新题…… 掌握方法论绝对是一种很爽的感觉.看起来好像很…
1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素. 思路1:暴力解题:固定一个数nums[i],然后让target减nums[i]  如果在数组中且下标不等于i则返回[i,nums.index(target-nums[i)]. 时间复杂度:O(n^2)O(n2), 对于每个元素,我们试图通过遍历数组的其余部分来寻找它所对应的目标元…
Array *532. K-diff Pairs in an Array 方案一:暴力搜索, N平方的时间复杂度,空间复杂度N 数组长度为10000,使用O(N平方)的解法担心TLE,不建议使用,尽管最终验证还是可以过. 方案二:哈希 时间复杂度N 空间复杂度N *1.two sum 思路: 使用hash, 顺序遍历数组,并记录每一个出现过的元素值和其下标,当遍历到当前元素时,查找target-当前元素值 是否出现在map中,存在则返回结果 *16. 3Sum Closest 思路一:暴力 fo…
题目来源:https://biancheng.love/contest-ng/index.html#/41/problems G 听说你会打地鼠 时间限制:300ms   内存限制:65536kb 题目描述 打地鼠是个很简单的游戏,不过你知道怎么打地鼠才能最省力吗? 每时刻,都有N只地鼠在pi(xi,yi)位置出现,打掉一只,该时刻其他地鼠会消失. 打掉第一只地鼠不消耗能量,之后每只地鼠消耗的能量约与鼠标移动距离成正比,即cost = dis(pi,pi+1)(平面上两点距离怎么求不多说了) 现…
Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words. For example, givens = "leetcode",dict = ["leet", "code"]. Return true because &…
For a undirected graph with tree characteristics, we can choose any node as the root. The result graph is then a rooted tree. Among all possible rooted trees, those with minimum height are called minimum height trees (MHTs). Given such a graph, write…
Given an array of non-negative integers, you are initially positioned at the first index of the array. Each element in the array represents your maximum jump length at that position. Your goal is to reach the last index in the minimum number of jumps…
暑期培训7日游解题思路(day1~day3) day1 第一天,王聿中老师出的题目比较简单,T1很水,T2是个简单的DP,T3还是有一点意思的.在网格图中删掉若干条边,使得所有格子都联通,求删掉的边的长度和最小为多少.很容易发现这是一个最小生成树问题,但点和边数量非常大,不可能完成一般的建图,然后发现这是网格图,同一行的竖边都相等,同一列的横边也都相等.克鲁斯卡尔每次找最短的边e(u,v),若u,v在不同的连通块,则取该边.所以在本题中如果要取某一条边,与它长度相等的边如果可以去就要取,因此每一…