原创 20191027-leetcode-55跳躍遊戲(思維)

分析:從前向後遍歷nums數組,index記錄從當前位置,以及當前以前位置跳,最多能跳多遠。如果遍歷到一個nums[i]==0nums[i]==0nums[i]==0的地方,倘若當前index不能大於i,證明不可能跳過這個地方。

原创 20191019-leetcode-2兩數相加(鏈表操作)

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListN

原创 20191025-leetcode-61旋轉鏈表(鏈表操作)

思路: (1)先把鏈表改成一個循環鏈表,方便後續操作。 (2)遍歷找到完成後鏈表的頭結點,然後遍歷記錄即可。 /** * Definition for singly-linked list. * struct ListNod

原创 20191024-leetcode54螺旋矩陣(模擬)

思路:模擬,定義四個方向up,right,down,leftup,right,down,leftup,right,down,left的值分別爲1,2,3,4。初始方向向右,記爲2.題目要求順時針轉,那麼就是當前方向+1。倘若值爲

原创 20191023-leetcode-43字符串相乘(大數相乘,int轉換成string)

題意分析:不準使用大數類,進行大數乘法。 參考博客思路:傳送門 可以參考下面的思路,自己在寫的時候,存儲結果的數組multi和下面不一樣。 因此乘機的結果在數組中的位置是[i+j,i+j+1][i+j,i+j+1][i+j,i+j

原创 20191026-leetcode-19. 刪除鏈表的倒數第N個節點

分析:鏈表刪除操作。 兩種方法,可以兩遍遍歷刪除,也可以一遍遍歷(雙指針方法)。 第一種,兩遍遍歷。 鏈表刪除操作,記得在頭結點前加一個預處理結點,用來防止鏈表就頭結點一個元素,刪除爲空的情況!一開始就是因爲忘記加預處理結點錯了。

原创 20191020-leetcode-15三數之和

非常好的一個教訓,畫了很久纔看出來自己哪裏寫錯了。 代碼這樣子寫會報邊界溢出的錯誤! if(nums[i]==nums[i-1]&&i!=0) continue; //去重 這樣子寫纔是對的。 if(i!=0&&nums[i]

原创 20191021-leetcode-16最接近的三數之和

class Solution { public: int threeSumClosest(vector<int>& nums, int target) { int minn=0x7f7f7f;

原创 20191026-leetcode-62不同路徑(簡單排列)

class Solution { public: int uniquePaths(int m, int n) { if(m==0||n==0||m+n==1) return 0;

原创 20191022-leetcode-33搜索旋轉排序數組

分析:時間複雜度O(logn)O(logn)O(logn),於是想到了二分查找。 把一個字符串從mid處切開,那麼必定一部分是有序的,另一部分是無序的。不斷切割,直到待查找的數落在了一個有序的區間內,二分查找即可。 class

原创 牛客小白月賽16 D小陽買水果(思維題)

題意簡單,求和大於0的最長連續子序列的長度。 分析:先求前綴和,把前綴和從小到大排序,如果前綴和相等把編號大的放前面,然後從前往後遍歷,記錄遍歷過程最小的編號,如果當前的編號大於最小的編號,則更新答案。注意特判n=1的情況。 於是

原创 桂林電子科技大學第三屆ACM程序設計競賽J-相聚(聯通塊)

題目鏈接:題目 #include<iostream> #include<cstdio> #include<cstring> using namespace std; int n,m,T,cnt=0; int mp[100][100

原创 【枚舉】牛課網枚舉專題

1、手機號碼 題目鏈接 #include<iostream> #include<algorithm> #include<cstdio> #include<string> #include<string.h> using names

原创 [中礦大學程序設計學科競賽]G畢業生的紀念禮物(priority_queue用法)

鏈接 分析:用一個優先隊列模擬。 priority_queue<int,vector<int>,greater<int> > que; //從小到大 priority_queue<int,vector<int>,less<int

原创 2019華南理工大學程序設計競賽(春季賽) 六學家的困惑(字符串)

題目鏈接 分析:題意很簡單,就是兩個雙端開口的隊列,每次取出每個端口最大的元素。 開始用兩個字符串模擬寫,但是發現一個問題,比如 343434 484484484 如果直接模擬輸出的是444834448344483,實際上最大的是