原创 算法 day9

長按鍵入 class Solution { public: bool isLongPressedName(string name, string typed) { int p1 = 0; int p

原创 算法 day8

隊列和棧 循環隊列 class MyCircularQueue { public: int q[1005]; int left; int right; int size; int ccount;

原创 算法 day7

初級算法合集 缺失的數字 class Solution { public: int missingNumber(vector<int>& nums) { int n = nums.size(); i

原创 算法 day6

【leetcode】環形鏈表2 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next;

原创 算法 day5

【leetcode】格雷編碼 背下來即可 class Solution { public: vector<int> grayCode(int n) { vector<int> ans; for(in

原创 算法 day4

【leetcode】最大寬度坡 class Solution { public: int maxWidthRamp(vector<int>& A) { stack<int> ss; int ans

原创 算法 day3

今天覆習單調棧 單調棧:尋找最左邊第一個比自己(嚴格)小/大的數 單調隊列:查找滑動窗口中的最值 基本上求滑動窗口的最值就是使用單調隊列 【leetcode】min stack 使用兩個棧,其中一個保存最小值。 class MinStac

原创 算法 day2

【leetcode】連續整數求和 class Solution { public: int sum1(int k) { return k*(k+1)/2; } int consecutive

原创 算法 day1

2020結束之前,再怎麼忙也要寫滿30天吧。   【leetcode 】two sum1 hashmap class Solution { public: vector<int> twoSum(vector<int>& nums,

原创 【複習1】 二分查找

【使用labuladong的算法小抄進行復習】 二分查找的思路並不複雜,但是算法實現的細節十分重要,區間是否開閉、大於小於號是否取等,如果沒有理解這些細節,每次寫二分查找只能靠菩薩保佑才能沒有bug。 所有的二分查找基於以下框架 int

原创 刷題筆記day12

1016 Phone Bills #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; struc

原创 刷題筆記day11

報數 #include<stdio.h> #include<stdlib.h> #include<string.h> int a[]={0,0,0,0}; int is7(int n) { if(n%7==0)return 1;

原创 刷題筆記day10

將軍的書 #include<stdio.h> #include<math.h> int n; char page[25]; char result[25]={'0'}; int main() { scanf("%d",&n);

原创 刷題筆記day9

【PAT A1012】 The Best Rank (25分) 此題的坑點是,排名涉及並列名次,存在並列第一,並列第三的情況,計算排名時要特別考慮。 #include<stdio.h> #include<string.h> #includ

原创 刷題筆記day6

【PAT A1086】 Tree Traversals Again        #include<stdio.h> #include<string.h> #include<stdlib.h> struct node { str