自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

博客已迁移至:lzed.github.io

leetcode代码的github仓库地址:https://github.com/lzed/leetcode

  • 博客(6)
  • 问答 (1)
  • 收藏
  • 关注

原创 Leetcode 93 - Restore IP Addresses(回溯法)

题意给一个由数组组成的字符串,要求把这个字符串还原成IP。 结果返回所有合法的IP地址。思路回溯法。 注意前导0的判断。代码class Solution {private: vector<string> ans;public: int Judge(string s) { if (s.length() > 1 && s[0] == '0') return -1;

2017-04-19 16:24:09 326

原创 Leetcode 554 - Brick Wall(HashMap)

题意一个m行的墙,每行由若干个大小不一的砖垒起来的。现在要求找:一条线竖着穿过这面墙,并且穿过最少的砖(横穿,从砖的边上穿过不算)。思路首先,最直接的思路是枚举一下横着穿过的坐标,但是宽度最大到INT_MAX,所以不行。因为所有的砖最多只有只有20000个,所以我们可以枚举砖的边缘。算法1枚举每一行的所有砖的边缘xx,然后判断从这个地方切开会划开几个砖。在求会划开几个砖的时候:维护每一行砖的前缀和,

2017-04-18 15:05:24 369

原创 hihocoder 1269 - 优化延迟(二分 + heap)

题目连接https://hihocoder.com/problemset/problem/1269思路二分缓冲区的大小,在判断答案是否合法的时候,用堆去维护。代码#include <bits/stdc++.h>using namespace std;#define LL long longconst int maxn = 100000 + 5;LL N, Q;LL p[maxn];bool j

2017-04-11 20:43:30 250

原创 Leetcode 309 - Best Time to Buy and Sell Stock with Cooldown(dp)

题意给定一个数组,其中aia_i代表第i天股票的价格为aia_i。你可以进行多次买卖,但是手中最多同时持有1支股票,并且某天卖出股票后,在那之后的一天不能进行任何买卖(cooldown)。 求能获得的最大利润。思路状态表示:d[i,j]d[i, j]代表第i天是否持股。j=1j = 1代表持股,j=0j = 0代表不持股。 状态转移: 1. 如果第i天不持股股票:可能是前一天就没有股票;或者前

2017-04-07 08:59:49 283

原创 排列组合问题及其实现

Permutation不含重复元素问题描述给一个大小为n为数组a,a内的元素互不相同,要求求出A(n,k)​A(n, k)​。思路直接dfs即可。枚举当前位需要放的数字,然后看前面是否出现。代码// a is original arrayvoid dfs(vector<int> t, int step) { if (step == k) { ans.push_back(t)

2017-04-03 13:52:35 333

原创 Leetcode 76 - Minimum Window Substring(Two Pointers)

题意给两个字符串s和t,要求找到s中最小的一段,使:t中的全部字母在s的这一段中出现。要求时间复杂度O(n)O(n)。思路双指针。我们设置两个指针i和j指向s中满足条件的那一段的头和尾。如果当前段满足条件,更新结果并且将i挪到下一个t中出现的字母的位置。如果不满足条件的话,将j后挪一个。我们可以来看看这个模拟过程:在判断是否满足条件时,有两种方法:开一个vis[]和need[]数组,其中need记

2017-04-03 12:08:16 236

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除