注意k从0开始算。
附上代码:
class Solution {
public:
vector<int> getRow(int rowIndex) {
// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
rowIndex++;
vector<int> ans(rowIndex……
输出螺旋增长的矩阵,两次AC注意n=0的情况
class Solution {
public:
vector<vector<int> > generateMatrix(int n) {
// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
vector……
简单的数组或者vector操作,一次AC
找找上下行的关系。
附上代码:
class Solution {
public:
vector<vector<int> > generate(int numRows) {
// Note: The Solution object is instantiated only once and is reused by each test case.
vector<vector<int>> ans(numRows)……
简单DP一次AC,附上代码:
class Solution {
public:
int minimumTotal(vector<vector<int> > &triangle) {
// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
for(int i = triangle.size()……
这个题怎么说?求数组最大的子序列和。
非一次AC,代码功力太需要提高了。注意边界。感觉这代码写得太差。
附上代码:
class Solution {
public:
int maxSubArray(int A[], int n) {
// Note: The Solution object is instantiated only once and is reused by each test case.
int sum = 0;
……
哇这个题之前觉得好难啊,但是AC率好高。心里好郁结。为啥这个题我就是不会呢T_T
后来在昨天脑子一热把这个题的I A掉的情况下。一下子豁然开朗。
题意要求一定要先买再卖,卖了才能再买。你可以多次买卖问你最大收益。
这样的话天与天之间求差,然后为正的全部加上即可。
一次AC:
class Solution {
public:
int maxP……
果然超时一次。
不过后来想了想,因为查重我每次都用的线性时间,所以很麻烦。
这个时候应该想到一种叫map的数据结构。
后来888ms过。
具体的map处理还需要自学和加强。
附上代码:
</p>
<h1>include &lt;map&gt;</h1>
<p>using namespace std;
class Solution {
public:
……
知道哥为啥后来坚持不下去了么!!!就是卡在3sum问题上了,才导致哥没办法 挑AC率高的题做。
因为3sum问题 也尼玛的老报错:OLE
3sum问题讲的是:
给定一个序列,让你找出3个数之和是0的那些数。开始天真的以为和2sum问题一样 简单的贪心,两个指针搞定问题。后来哎。
我的思路是:
先排序nlogn
然后 以此枚举2负1正,3……
对输入的数组进行全排列,然后输出~
各种输出超时啊~各种不明白
记得之前问lisy,他说是我输出的东西大小多于应该输出的。系统判题之后直接给输出了OLE
哎。看见这个比我看见超时心里还难受,看见超时至少哥自己还可以改呢!
后来想是不是一个数组里面有重复的数据呢?我每次插入到vector的时候查一下重复是不是好一些,……
这个题我真心没想到我竟然独立AC了,中间过程好曲折啊。所以坚持就是胜利。
题意大致是:
买股票,只能有一次买卖的机会。问你在某天买,之后的某天卖,请问如何获得最大的收益。
我擦,我想这个多简单,我直接暴力不就行了。
果然呵呵了。TLE
后来想破脑子的想啊,怎么降低时间复杂度啊。
快排啊?
贪心啊?觉得和2sum问……