- 博客(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
空空如也
C#实例化一个firefox模型问题
2015-08-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人