原创 順時針打印矩陣

題目 類型:數組 模擬 注意:cnt來統計,而且在四個操作中也要加,不然會出錯。 class Printer { public: vector<int> clockwisePrint(vector<vector<int>

原创 772. 基本計算器 III

題目 難度:困難 類型:遞歸 棧 class Solution { public: int calculate(string s) { int j = 0; for(int i = 0; i

原创 93. 復原IP地址

題目:93. Restore IP Addresses 難度:中等 類型:深搜 字符串 星級:五星推薦 題意:把一個字符串恢復成所有可能的IP地址,注意0不能作爲每段的開頭。 class Solution { public:

原创 最後一個字符

題目 類型:字符串 注意:使用fgets比較快 #include <bits/stdc++.h> using namespace std; const int N = 1e6+5; int dp[256]; int main(){

原创 整數反轉

題目 公司:迅雷 類型:數學規律 題意:把一個32位的有符號整數反轉。注意雖然輸入保證是32位的,但是反轉過後就可能溢出,所以直接用longlong存。這道題是leetcode上的原題。 #include <bits/stdc++

原创 直方圖內最大矩形

題目 公司:美團 類型:單調棧 題意:找到一個數組中形成的最大矩形。leetcode84題原題。 class MaxInnerRec { public: int countArea(vector<int> A, int n

原创 第二大的數

題目 公司:搜狐 類型:數組 題意:找到第二大的數。可以掃描兩次,第一次找第一大的,第二次找第二大的。注意去重。 #include <bits/stdc++.h> using namespace std; const int N

原创 上臺階

題目 公司:京東 類型:動態規劃 斐波那契數列 題意:注意開始位置是臺階1 class GoUpstairs { public: int f[103]; const int M = 1e9+7; int c

原创 整數加法

題目 公司:美團 類型:字符串模擬 題意:模擬字符串加法,注意非法輸入要輸出error,首字母不用大寫,題目跟樣例不一致。 #include <bits/stdc++.h> using namespace std; int mai

原创 最長公共子序列

題目 類型:動態規劃 題意:找到最長公共子序列的長度,不要求連續。 class LCS { public: int findLCS(string A, int n, string B, int m) { v

原创 820. 單詞的壓縮編碼

題目 類型:字典樹 難度:中等 題意:快速找出所有後綴。 class Solution { public: int minimumLengthEncoding(vector<string>& words) {

原创 1013. 將數組分成和相等的三個部分

題目鏈接 DFS+剪枝 先找到第一個滿足的數組 然後從剩餘的數組中找另外兩個和等於target的數組 看了題解才發現有更好的雙指針解法。 class Solution { public: vector<int> sum;

原创 1337. 方陣中戰鬥力最弱的 K 行

模擬 矩陣從小到大排序,當1的數字相同時,索引小的行排在前面,所以在矩陣的最後一列增加一個當前所在行的所以,直接用vector內置的比較函數進行比較。最後統計結果時,直接返回最後一行的索引。 class Solution { pu

原创 1365. 有多少小於當前數字的數字

題目鏈接 暴力法 class Solution { public: vector<int> smallerNumbersThanCurrent(vector<int>& nums) { //方法1 暴力求解

原创 754. 到達終點數字

數學規律 難度:中等 推薦學習視頻:花花醬 class Solution { public: int reachNumber(int target) { // t = k*(k+1)/2 => k = sq