![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
csdn_lzw
这个人很菜什么也没写
展开
-
200、463、695. DFS Island
200 Number of Islands DFS class Solution(object): def numIslands(self, grid): """ :type grid: List[List[str]] :rtype: int """ if not grid: retur...原创 2018-10-03 21:19:32 · 146 阅读 · 0 评论 -
64. DP Minimum Path Sum
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path. Note: You can only move either down or right at an...原创 2018-10-01 15:20:54 · 134 阅读 · 0 评论 -
62. DP Unique Paths
相当于机器人总共走了m + n - 2步,其中m - 1步向下走,n - 1步向右走,那么总共不同的方法个数就相当于在步数里面m - 1和n - 1中较小的那个数的取法,实际上是一道组合数的问题,写出代码如下: class Solution(object): def uniquePaths(self, m, n): """ :type m: int ...原创 2018-10-01 15:10:15 · 133 阅读 · 0 评论 -
877. DP 石子游戏
亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。 游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。 亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。 假设亚历克斯和李都发挥出最佳水平,当亚历克斯赢得比赛时返回 true ,当李赢得...转载 2018-10-01 14:16:49 · 547 阅读 · 0 评论 -
338 、DP 统计从0到n每个数的二进制写法的1的个数
状态转移 dp[i] = dp[i>>1] + (i&1). class Solution(object): def countBits(self, num): """ :type num: int :rtype: List[int] """ dp = [0]*(1+num) ...原创 2018-09-30 22:38:37 · 449 阅读 · 0 评论 -
152. Maximum Product Subarray
连续最大字段和与最大字段积 同时 保留当前位置的最大和最小 def maxProduct(nums): ma = nums[0] mi = nums[0] res = nums[0] for i in range(1,len(nums)): mi,ma = min(nums[i], nums[i]*mi, nums[i]*ma),max(nums...原创 2018-09-18 21:40:59 · 98 阅读 · 0 评论 -
198. House Robber
动态规划,设置maxV[i]表示到第i个房子位置,最大收益。 递推关系为maxV[i] = max(maxV[i-2]+num[i], maxV[i-1]) class Solution { public: int rob(vector<int>& nums) { int n=nums.size(); if(n==0)return 0; vec...原创 2018-05-07 14:50:34 · 108 阅读 · 0 评论 -
35
二分查找#include <cstdio> #include <iostream> #include <set> #include <vector> using namespace std; int searchInsert(vector<int>& nums, int target) { int low = 0,high = nums.size()-1;原创 2018-02-08 14:20:40 · 148 阅读 · 0 评论 -
747
747数组 寻找最小的两个数#include <cstdio> #include <iostream> #include <set> #include <vector> using namespace std;int dominantIndex(vector<int>& nums) { int maxn = -1; int maxnsec = -1;原创 2018-02-07 23:32:27 · 168 阅读 · 0 评论 -
121. Best Time to Buy and Sell Stock
转换 为求最大子序列和问题 53题 nums[i] = prices[i]-prices[i-1] nums[0] = 0;#include <cstdio> #include <iostream> #include <set> #include <vector> using namespace std;int maxProfit(vector<int>& prices) {原创 2018-02-09 16:44:56 · 105 阅读 · 0 评论 -
53最大子序列和
DP 状态转移方程:sum[i] = max{sum[i-1]+a[i],a[i]}. (sum[i]记录以a[i]为子序列末端的最大连续和。#include <cstdio> #include <iostream> #include <set> #include <vector> using namespace std;int maxSubArray(vector<int>& nums)原创 2018-02-09 16:21:53 · 192 阅读 · 0 评论 -
283. Move Zeroes
#include <cstdio> #include <iostream> #include <set> #include <vector> using namespace std; void moveZeroes(vector<int>& nums) { int count =0 ; for(int i=0; i<nums.size();++i) { if(原创 2018-02-09 19:42:10 · 152 阅读 · 0 评论 -
771 桶排
771 桶排 #include <cstdio> #include <iostream> #include <set> using namespace std; int numJewelsInStones(string J, string S) { int sum = 0; int count[58]={0};//6...原创 2018-02-03 21:20:34 · 183 阅读 · 0 评论