receive的意思 = 13124 - (ADC_RES*1024 + ADC_RESL*4);想得到一个4~10100的int类型的receive的意思,ADC_RES是1个8位

37 Sudoku Solver
// ----------------Seeing Discuss-----------
copying codes
https://discuss.leetcode.com/topic/5002/a-simple-dfs-solution
class Solution {
bool isValidSudoku(vector&vector&char& & &board) {
void solveSudoku(vector&vector&char& & &board) {
util(board, 0);
bool util(vector&vector&char&&& board, int pos)
if (pos &= 81)
int i = pos / 9;
int j = pos % 9;
if (board[i][j] != '.')
return util(board, pos + 1);
for (char c = '1'; c &= '9'; c++)
if (!isInRow(board, i,c) && !isInCol(board, j, c) && !isInRec(board, i, j, c))
board[i][j] =
if (util(board, pos + 1))
board[i][j] = '.';
bool isInRow(vector&vector&char&&& board, int i, char c)
vector&char&& row = board[i];
for (int k = 0; k & 9; k++)
if (row[k] == c)
bool isInCol(vector&vector&char&&& board,int j, char c)
for (int k = 0; k & 9; k++)
if (board[k][j] == c)
bool isInRec(vector&vector&char&&& board, int i, int j, char c)
int bigrow = i / 3, bigcol = j / 3;
for (int m = 3 * m & 3 * (bigrow + 1); m++)
for (int n = 3 * n & 3 * (bigcol + 1); n++)
if (board[m][n] == c)
65 Valid Number
// ----------------Seeing Discuss-----------
copying codes
https://discuss.leetcode.com/topic/2710/a-simple-solution-in-cpp
class Solution {
bool isNumber(string s)
for(;s[i]==' ';i++) {}
if(s[i]=='+' || s[i]=='-') i++;
int n_nm,n_
for(n_nm=0,n_pt=0;(s[i]&='9' && s[i]&='0')|| s[i]=='.';i++)
s[i] =='.'?n_pt++:n_nm++;
if(n_pt&1 || n_nm&1)
if(s[i]=='e')
if(s[i]=='+' || s[i]=='-')i++;
int n_nm=0;
for(;s[i]&='0' && s[i]&='9';i++,n_nm++){}
if(n_nm&1)
for(;s[i]==' ';i++){}
return s[i]==0;
212 Word Search II
// ---------------------Seeing Discuss -------------
copying codes
https://discuss.leetcode.com/topic/20210/my-ac-very-clean-c-code
The idea is start from every position of the board, and then see if we can
find a word starting from this position with checking if is_end is true in TrieNode structure
class TrieNode{
vector&TrieNode*&
TrieNode(){
children=vector&TrieNode*&(26, NULL);
class Trie{
TrieNode* getRoot(){}
Trie(vector&string&& words){
root=new TrieNode();
for(int i=0; i&words.size(); ++i)
addWord(words[i]);
void addWord(const string& word){
TrieNode* cur=
for(int i=0; i&word.size(); ++i){
int index=word[i]-'a';
if(cur-&children[index]==NULL)
cur-&children[index]=new TrieNode();
cur=cur-&children[index];
cur-&is_end=
class Solution {
vector&string& findWords(vector&vector&char&&& board, vector&string&& words) {
Trie* trie = new Trie(words);
TrieNode* root=trie-&getRoot();
set&string& result_
for(int x=0; x&board.size(); ++x)
for(int y=0; y&board[0].size(); ++y)
findWords(board, x, y, root, &&, result_set);
vector&string&
for(auto it:result_set)
result.push_back(it);
void findWords(vector&vector&char&&& board, int x, int y, TrieNode* root, string word, set&string&& result){
if(x&0||x&=board.size()||y&0||y&=board[0].size() || board[x][y]==' ')
if(root-&children[board[x][y]-'a'] != NULL){
word=word+board[x][y];
root=root-&children[board[x][y]-'a'];
if(root-&is_end) result.insert(word);
char c=board[x][y];
board[x][y]=' ';
findWords(board, x+1, y, root, word, result);
findWords(board, x-1, y, root, word, result);
findWords(board, x, y+1, root, word, result);
findWords(board, x, y-1, root, word, result);
board[x][y]=c;
// -------------------TLE 1st depth first search--------------------
// 35 / 37 test cases passed.
// the TLE data point:
[&aaaa&,&aaaa&,&aaaa&,&aaaa&,&bcde&,&fghi&,&jklm&,&nopq&,&rstu&,&vwxy&,&zzzz&]
[&aaaaaaaaaaaaaaaa&,&aaaaaaaaaaaaaaab&,&aaaaaaaaaaaaaaac&,&aaaaaaaaaaaaaaad&,&aaaaaaaaaaaaaaae&,&aaaaaaaaaaaaaaaf&,&aaaaaaaaaaaaaaag&,&aaaaaaaaaaaaaaah&,&aaaaaaaaaaaaaaai&,&aaaaaaaaaaaaaaaj&,&aaaaaaaaaaaaaaak&,&aaaaaaaaaaaaaaal&,&aaaaaaaaaaaaaaam&,&aaaaaaaaaaaaaaan&,&aaaaaaaaaaaaaaao&,&aaaaaaaaaaaaaaap&,&aaaaaaaaaaaaaaaq&,&aaaaaaaaaaaaaaar&,&aaaaaaaaaaaaaaas&,&aaaaaaaaaaaaaaat&,&aaaaaaaaaaaaaaau&,&aaaaaaaaaaaaaaav&,&aaaaaaaaaaaaaaaw&,&aaaaaaaaaaaaaaax&,&aaaaaaaaaaaaaaay&,&aaaaaaaaaaaaaaaz&,&aaaaaaaaaaaaaaaa&,&aaaaaaaaaaaaaaab&,&aaaaaaaaaaaaaaac&,&aaaaaaaaaaaaaaad&,&aaaaaaaaaaaaaaae&,&aaaaaaaaaaaaaaaf&,&aaaaaaaaaaaaaaag&,&aaaaaaaaaaaaaaah&,&aaaaaaaaaaaaaaai&,&aaaaaaaaaaaaaaaj&,&aaaaaaaaaaaaaaak&,&aaaaaaaaaaaaaaal&,&aaaaaaaaaaaaaaam&,&aaaaaaaaaaaaaaan&,&aaaaaaaaaaaaaaao&,&aaaaaaaaaaaaaaap&,&aaaaaaaaaaaaaaaq&,&aaaaaaaaaaaaaaar&,&aaaaaaaaaaaaaaas&,&aaaaaaaaaaaaaaat&,&aaaaaaaaaaaaaaau&,&aaaaaaaaaaaaaaav&,&aaaaaaaaaaaaaaaw&,&aaaaaaaaaaaaaaax&,&aaaaaaaaaaaaaaay&,&aaaaaaaaaaaaaaaz&,&aaaaaaaaaaaaaaba&,&aaaaaaaaaaaaaabb&,&aaaaaaaaaaaaaabc&,&aaaaaaaaaaaaaabd&,&aaaaaaaaaaaaaabe&,&aaaaaaaaaaaaaabf&,&aaaaaaaaaaaaaabg&,&aaaaaaaaaaaaaabh&,&aaaaaaaaaaaaaabi&,&aaaaaaaaaaaaaabj&,&aaaaaaaaaaaaaabk&,&aaaaaaaaaaaaaabl&,&aaaaaaaaaaaaaabm&,&aaaaaaaaaaaaaabn&,&aaaaaaaaaaaaaabo&,&aaaaaaaaaaaaaabp&,&aaaaaaaaaaaaaabq&,&aaaaaaaaaaaaaabr&,&aaaaaaaaaaaaaabs&,&aaaaaaaaaaaaaabt&,&aaaaaaaaaaaaaabu&,&aaaaaaaaaaaaaabv&,&aaaaaaaaaaaaaabw&,&aaaaaaaaaaaaaabx&,&aaaaaaaaaaaaaaby&,&aaaaaaaaaaaaaabz&,&aaaaaaaaaaaaaaca&,&aaaaaaaaaaaaaacb&,&aaaaaaaaaaaaaacc&,&aaaaaaaaaaaaaacd&,&aaaaaaaaaaaaaace&,&aaaaaaaaaaaaaacf&,&aaaaaaaaaaaaaacg&,&aaaaaaaaaaaaaach&,&aaaaaaaaaaaaaaci&,&aaaaaaaaaaaaaacj&,&aaaaaaaaaaaaaack&,&aaaaaaaaaaaaaacl&,&aaaaaaaaaaaaaacm&,&aaaaaaaaaaaaaacn&,&aaaaaaaaaaaaaaco&,&aaaaaaaaaaaaaacp&,&aaaaaaaaaaaaaacq&,&aaaaaaaaaaaaaacr&,&aaaaaaaaaaaaaacs&,&aaaaaaaaaaaaaact&,&aaaaaaaaaaaaaacu&,&aaaaaaaaaaaaaacv&,&aaaaaaaaaaaaaacw&,&aaaaaaaaaaaaaacx&,&aaaaaaaaaaaaaacy&,&aaaaaaaaaaaaaacz&,&aaaaaaaaaaaaaada&,&aaaaaaaaaaaaaadb&,&aaaaaaaaaaaaaadc&,&aaaaaaaaaaaaaadd&,&aaaaaaaaaaaaaade&,&aaaaaaaaaaaaaadf&,&aaaaaaaaaaaaaadg&,&aaaaaaaaaaaaaadh&,&aaaaaaaaaaaaaadi&,&aaaaaaaaaaaaaadj&,&aaaaaaaaaaaaaadk&,&aaaaaaaaaaaaaadl&,&aaaaaaaaaaaaaadm&,&aaaaaaaaaaaaaadn&,&aaaaaaaaaaaaaado&,&aaaaaaaaaaaaaadp&,&aaaaaaaaaaaaaadq&,&aaaaaaaaaaaaaadr&,&aaaaaaaaaaaaaads&,&aaaaaaaaaaaaaadt&,&aaaaaaaaaaaaaadu&,&aaaaaaaaaaaaaadv&,&aaaaaaaaaaaaaadw&,&aaaaaaaaaaaaaadx&,&aaaaaaaaaaaaaady&,&aaaaaaaaaaaaaadz&,&aaaaaaaaaaaaaaea&,&aaaaaaaaaaaaaaeb&,&aaaaaaaaaaaaaaec&,&aaaaaaaaaaaaaaed&,&aaaaaaaaaaaaaaee&,&aaaaaaaaaaaaaaef&,&aaaaaaaaaaaaaaeg&,&aaaaaaaaaaaaaaeh&,&aaaaaaaaaaaaaaei&,&aaaaaaaaaaaaaaej&,&aaaaaaaaaaaaaaek&,&aaaaaaaaaaaaaael&,&aaaaaaaaaaaaaaem&,&aaaaaaaaaaaaaaen&,&aaaaaaaaaaaaaaeo&,&aaaaaaaaaaaaaaep&,&aaaaaaaaaaaaaaeq&,&aaaaaaaaaaaaaaer&,&aaaaaaaaaaaaaaes&,&aaaaaaaaaaaaaaet&,&aaaaaaaaaaaaaaeu&,&aaaaaaaaaaaaaaev&,&aaaaaaaaaaaaaaew&,&aaaaaaaaaaaaaaex&,&aaaaaaaaaaaaaaey&,&aaaaaaaaaaaaaaez&,&aaaaaaaaaaaaaafa&,&aaaaaaaaaaaaaafb&,&aaaaaaaaaaaaaafc&,&aaaaaaaaaaaaaafd&,&aaaaaaaaaaaaaafe&,&aaaaaaaaaaaaaaff&,&aaaaaaaaaaaaaafg&,&aaaaaaaaaaaaaafh&,&aaaaaaaaaaaaaafi&,&aaaaaaaaaaaaaafj&,&aaaaaaaaaaaaaafk&,&aaaaaaaaaaaaaafl&,&aaaaaaaaaaaaaafm&,&aaaaaaaaaaaaaafn&,&aaaaaaaaaaaaaafo&,&aaaaaaaaaaaaaafp&,&aaaaaaaaaaaaaafq&,&aaaaaaaaaaaaaafr&,&aaaaaaaaaaaaaafs&,&aaaaaaaaaaaaaaft&,&aaaaaaaaaaaaaafu&,&aaaaaaaaaaaaaafv&,&aaaaaaaaaaaaaafw&,&aaaaaaaaaaaaaafx&,&aaaaaaaaaaaaaafy&,&aaaaaaaaaaaaaafz&,&aaaaaaaaaaaaaaga&,&aaaaaaaaaaaaaagb&,&aaaaaaaaaaaaaagc&,&aaaaaaaaaaaaaagd&,&aaaaaaaaaaaaaage&,&aaaaaaaaaaaaaagf&,&aaaaaaaaaaaaaagg&,&aaaaaaaaaaaaaagh&,&aaaaaaaaaaaaaagi&,&aaaaaaaaaaaaaagj&,&aaaaaaaaaaaaaagk&,&aaaaaaaaaaaaaagl&,&aaaaaaaaaaaaaagm&,&aaaaaaaaaaaaaagn&,&aaaaaaaaaaaaaago&,&aaaaaaaaaaaaaagp&,&aaaaaaaaaaaaaagq&,&aaaaaaaaaaaaaagr&,&aaaaaaaaaaaaaags&,&aaaaaaaaaaaaaagt&,&aaaaaaaaaaaaaagu&,&aaaaaaaaaaaaaagv&,&aaaaaaaaaaaaaagw&,&aaaaaaaaaaaaaagx&,&aaaaaaaaaaaaaagy&,&aaaaaaaaaaaaaagz&,&aaaaaaaaaaaaaaha&,&aaaaaaaaaaaaaahb&,&aaaaaaaaaaaaaahc&,&aaaaaaaaaaaaaahd&,&aaaaaaaaaaaaaahe&,&aaaaaaaaaaaaaahf&,&aaaaaaaaaaaaaahg&,&aaaaaaaaaaaaaahh&,&aaaaaaaaaaaaaahi&,&aaaaaaaaaaaaaahj&,&aaaaaaaaaaaaaahk&,&aaaaaaaaaaaaaahl&,&aaaaaaaaaaaaaahm&,&aaaaaaaaaaaaaahn&,&aaaaaaaaaaaaaaho&,&aaaaaaaaaaaaaahp&,&aaaaaaaaaaaaaahq&,&aaaaaaaaaaaaaahr&,&aaaaaaaaaaaaaahs&,&aaaaaaaaaaaaaaht&,&aaaaaaaaaaaaaahu&,&aaaaaaaaaaaaaahv&,&aaaaaaaaaaaaaahw&,&aaaaaaaaaaaaaahx&,&aaaaaaaaaaaaaahy&,&aaaaaaaaaaaaaahz&,&aaaaaaaaaaaaaaia&,&aaaaaaaaaaaaaaib&,&aaaaaaaaaaaaaaic&,&aaaaaaaaaaaaaaid&,&aaaaaaaaaaaaaaie&,&aaaaaaaaaaaaaaif&,&aaaaaaaaaaaaaaig&,&aaaaaaaaaaaaaaih&,&aaaaaaaaaaaaaaii&,&aaaaaaaaaaaaaaij&,&aaaaaaaaaaaaaaik&,&aaaaaaaaaaaaaail&,&aaaaaaaaaaaaaaim&,&aaaaaaaaaaaaaain&,&aaaaaaaaaaaaaaio&,&aaaaaaaaaaaaaaip&,&aaaaaaaaaaaaaaiq&,&aaaaaaaaaaaaaair&,&aaaaaaaaaaaaaais&,&aaaaaaaaaaaaaait&,&aaaaaaaaaaaaaaiu&,&aaaaaaaaaaaaaaiv&,&aaaaaaaaaaaaaaiw&,&aaaaaaaaaaaaaaix&,&aaaaaaaaaaaaaaiy&,&aaaaaaaaaaaaaaiz&,&aaaaaaaaaaaaaaja&,&aaaaaaaaaaaaaajb&,&aaaaaaaaaaaaaajc&,&aaaaaaaaaaaaaajd&,&aaaaaaaaaaaaaaje&,&aaaaaaaaaaaaaajf&,&aaaaaaaaaaaaaajg&,&aaaaaaaaaaaaaajh&,&aaaaaaaaaaaaaaji&,&aaaaaaaaaaaaaajj&,&aaaaaaaaaaaaaajk&,&aaaaaaaaaaaaaajl&,&aaaaaaaaaaaaaajm&,&aaaaaaaaaaaaaajn&,&aaaaaaaaaaaaaajo&,&aaaaaaaaaaaaaajp&,&aaaaaaaaaaaaaajq&,&aaaaaaaaaaaaaajr&,&aaaaaaaaaaaaaajs&,&aaaaaaaaaaaaaajt&,&aaaaaaaaaaaaaaju&,&aaaaaaaaaaaaaajv&,&aaaaaaaaaaaaaajw&,&aaaaaaaaaaaaaajx&,&aaaaaaaaaaaaaajy&,&aaaaaaaaaaaaaajz&,&aaaaaaaaaaaaaaka&,&aaaaaaaaaaaaaakb&,&aaaaaaaaaaaaaakc&,&aaaaaaaaaaaaaakd&,&aaaaaaaaaaaaaake&,&aaaaaaaaaaaaaakf&,&aaaaaaaaaaaaaakg&,&aaaaaaaaaaaaaakh&,&aaaaaaaaaaaaaaki&,&aaaaaaaaaaaaaakj&,&aaaaaaaaaaaaaakk&,&aaaaaaaaaaaaaakl&,&aaaaaaaaaaaaaakm&,&aaaaaaaaaaaaaakn&,&aaaaaaaaaaaaaako&,&aaaaaaaaaaaaaakp&,&aaaaaaaaaaaaaakq&,&aaaaaaaaaaaaaakr&,&aaaaaaaaaaaaaaks&,&aaaaaaaaaaaaaakt&,&aaaaaaaaaaaaaaku&,&aaaaaaaaaaaaaakv&,&aaaaaaaaaaaaaakw&,&aaaaaaaaaaaaaakx&,&aaaaaaaaaaaaaaky&,&aaaaaaaaaaaaaakz&,&aaaaaaaaaaaaaala&,&aaaaaaaaaaaaaalb&,&aaaaaaaaaaaaaalc&,&aaaaaaaaaaaaaald&,&aaaaaaaaaaaaaale&,&aaaaaaaaaaaaaalf&,&aaaaaaaaaaaaaalg&,&aaaaaaaaaaaaaalh&,&aaaaaaaaaaaaaali&,&aaaaaaaaaaaaaalj&,&aaaaaaaaaaaaaalk&,&aaaaaaaaaaaaaall&,&aaaaaaaaaaaaaalm&,&aaaaaaaaaaaaaaln&,&aaaaaaaaaaaaaalo&,&aaaaaaaaaaaaaalp&,&aaaaaaaaaaaaaalq&,&aaaaaaaaaaaaaalr&,&aaaaaaaaaaaaaals&,&aaaaaaaaaaaaaalt&,&aaaaaaaaaaaaaalu&,&aaaaaaaaaaaaaalv&,&aaaaaaaaaaaaaalw&,&aaaaaaaaaaaaaalx&,&aaaaaaaaaaaaaaly&,&aaaaaaaaaaaaaalz&,&aaaaaaaaaaaaaama&,&aaaaaaaaaaaaaamb&,&aaaaaaaaaaaaaamc&,&aaaaaaaaaaaaaamd&,&aaaaaaaaaaaaaame&,&aaaaaaaaaaaaaamf&,&aaaaaaaaaaaaaamg&,&aaaaaaaaaaaaaamh&,&aaaaaaaaaaaaaami&,&aaaaaaaaaaaaaamj&,&aaaaaaaaaaaaaamk&,&aaaaaaaaaaaaaaml&,&aaaaaaaaaaaaaamm&,&aaaaaaaaaaaaaamn&,&aaaaaaaaaaaaaamo&,&aaaaaaaaaaaaaamp&,&aaaaaaaaaaaaaamq&,&aaaaaaaaaaaaaamr&,&aaaaaaaaaaaaaams&,&aaaaaaaaaaaaaamt&,&aaaaaaaaaaaaaamu&,&aaaaaaaaaaaaaamv&,&aaaaaaaaaaaaaamw&,&aaaaaaaaaaaaaamx&,&aaaaaaaaaaaaaamy&,&aaaaaaaaaaaaaamz&,&aaaaaaaaaaaaaana&,&aaaaaaaaaaaaaanb&,&aaaaaaaaaaaaaanc&,&aaaaaaaaaaaaaand&,&aaaaaaaaaaaaaane&,&aaaaaaaaaaaaaanf&,&aaaaaaaaaaaaaang&,&aaaaaaaaaaaaaanh&,&aaaaaaaaaaaaaani&,&aaaaaaaaaaaaaanj&,&aaaaaaaaaaaaaank&,&aaaaaaaaaaaaaanl&,&aaaaaaaaaaaaaanm&,&aaaaaaaaaaaaaann&,&aaaaaaaaaaaaaano&,&aaaaaaaaaaaaaanp&,&aaaaaaaaaaaaaanq&,&aaaaaaaaaaaaaanr&,&aaaaaaaaaaaaaans&,&aaaaaaaaaaaaaant&,&aaaaaaaaaaaaaanu&,&aaaaaaaaaaaaaanv&,&aaaaaaaaaaaaaanw&,&aaaaaaaaaaaaaanx&,&aaaaaaaaaaaaaany&,&aaaaaaaaaaaaaanz&,&aaaaaaaaaaaaaaoa&,&aaaaaaaaaaaaaaob&,&aaaaaaaaaaaaaaoc&,&aaaaaaaaaaaaaaod&,&aaaaaaaaaaaaaaoe&,&aaaaaaaaaaaaaaof&,&aaaaaaaaaaaaaaog&,&aaaaaaaaaaaaaaoh&,&aaaaaaaaaaaaaaoi&,&aaaaaaaaaaaaaaoj&,&aaaaaaaaaaaaaaok&,&aaaaaaaaaaaaaaol&,&aaaaaaaaaaaaaaom&,&aaaaaaaaaaaaaaon&,&aaaaaaaaaaaaaaoo&,&aaaaaaaaaaaaaaop&,&aaaaaaaaaaaaaaoq&,&aaaaaaaaaaaaaaor&,&aaaaaaaaaaaaaaos&,&aaaaaaaaaaaaaaot&,&aaaaaaaaaaaaaaou&,&aaaaaaaaaaaaaaov&,&aaaaaaaaaaaaaaow&,&aaaaaaaaaaaaaaox&,&aaaaaaaaaaaaaaoy&,&aaaaaaaaaaaaaaoz&,&aaaaaaaaaaaaaapa&,&aaaaaaaaaaaaaapb&,&aaaaaaaaaaaaaapc&,&aaaaaaaaaaaaaapd&,&aaaaaaaaaaaaaape&,&aaaaaaaaaaaaaapf&,&aaaaaaaaaaaaaapg&,&aaaaaaaaaaaaaaph&,&aaaaaaaaaaaaaapi&,&aaaaaaaaaaaaaapj&,&aaaaaaaaaaaaaapk&,&aaaaaaaaaaaaaapl&,&aaaaaaaaaaaaaapm&,&aaaaaaaaaaaaaapn&,&aaaaaaaaaaaaaapo&,&aaaaaaaaaaaaaapp&,&aaaaaaaaaaaaaapq&,&aaaaaaaaaaaaaapr&,&aaaaaaaaaaaaaaps&,&aaaaaaaaaaaaaapt&,&aaaaaaaaaaaaaapu&,&aaaaaaaaaaaaaapv&,&aaaaaaaaaaaaaapw&,&aaaaaaaaaaaaaapx&,&aaaaaaaaaaaaaapy&,&aaaaaaaaaaaaaapz&,&aaaaaaaaaaaaaaqa&,&aaaaaaaaaaaaaaqb&,&aaaaaaaaaaaaaaqc&,&aaaaaaaaaaaaaaqd&,&aaaaaaaaaaaaaaqe&,&aaaaaaaaaaaaaaqf&,&aaaaaaaaaaaaaaqg&,&aaaaaaaaaaaaaaqh&,&aaaaaaaaaaaaaaqi&,&aaaaaaaaaaaaaaqj&,&aaaaaaaaaaaaaaqk&,&aaaaaaaaaaaaaaql&,&aaaaaaaaaaaaaaqm&,&aaaaaaaaaaaaaaqn&,&aaaaaaaaaaaaaaqo&,&aaaaaaaaaaaaaaqp&,&aaaaaaaaaaaaaaqq&,&aaaaaaaaaaaaaaqr&,&aaaaaaaaaaaaaaqs&,&aaaaaaaaaaaaaaqt&,&aaaaaaaaaaaaaaqu&,&aaaaaaaaaaaaaaqv&,&aaaaaaaaaaaaaaqw&,&aaaaaaaaaaaaaaqx&,&aaaaaaaaaaaaaaqy&,&aaaaaaaaaaaaaaqz&,&aaaaaaaaaaaaaara&,&aaaaaaaaaaaaaarb&,&aaaaaaaaaaaaaarc&,&aaaaaaaaaaaaaard&,&aaaaaaaaaaaaaare&,&aaaaaaaaaaaaaarf&,&aaaaaaaaaaaaaarg&,&aaaaaaaaaaaaaarh&,&aaaaaaaaaaaaaari&,&aaaaaaaaaaaaaarj&,&aaaaaaaaaaaaaark&,&aaaaaaaaaaaaaarl&,&aaaaaaaaaaaaaarm&,&aaaaaaaaaaaaaarn&,&aaaaaaaaaaaaaaro&,&aaaaaaaaaaaaaarp&,&aaaaaaaaaaaaaarq&,&aaaaaaaaaaaaaarr&,&aaaaaaaaaaaaaars&,&aaaaaaaaaaaaaart&,&aaaaaaaaaaaaaaru&,&aaaaaaaaaaaaaarv&,&aaaaaaaaaaaaaarw&,&aaaaaaaaaaaaaarx&,&aaaaaaaaaaaaaary&,&aaaaaaaaaaaaaarz&,&aaaaaaaaaaaaaasa&,&aaaaaaaaaaaaaasb&,&aaaaaaaaaaaaaasc&,&aaaaaaaaaaaaaasd&,&aaaaaaaaaaaaaase&,&aaaaaaaaaaaaaasf&,&aaaaaaaaaaaaaasg&,&aaaaaaaaaaaaaash&,&aaaaaaaaaaaaaasi&,&aaaaaaaaaaaaaasj&,&aaaaaaaaaaaaaask&,&aaaaaaaaaaaaaasl&,&aaaaaaaaaaaaaasm&,&aaaaaaaaaaaaaasn&,&aaaaaaaaaaaaaaso&,&aaaaaaaaaaaaaasp&,&aaaaaaaaaaaaaasq&,&aaaaaaaaaaaaaasr&,&aaaaaaaaaaaaaass&,&aaaaaaaaaaaaaast&,&aaaaaaaaaaaaaasu&,&aaaaaaaaaaaaaasv&,&aaaaaaaaaaaaaasw&,&aaaaaaaaaaaaaasx&,&aaaaaaaaaaaaaasy&,&aaaaaaaaaaaaaasz&,&aaaaaaaaaaaaaata&,&aaaaaaaaaaaaaatb&,&aaaaaaaaaaaaaatc&,&aaaaaaaaaaaaaatd&,&aaaaaaaaaaaaaate&,&aaaaaaaaaaaaaatf&,&aaaaaaaaaaaaaatg&,&aaaaaaaaaaaaaath&,&aaaaaaaaaaaaaati&,&aaaaaaaaaaaaaatj&,&aaaaaaaaaaaaaatk&,&aaaaaaaaaaaaaatl&,&aaaaaaaaaaaaaatm&,&aaaaaaaaaaaaaatn&,&aaaaaaaaaaaaaato&,&aaaaaaaaaaaaaatp&,&aaaaaaaaaaaaaatq&,&aaaaaaaaaaaaaatr&,&aaaaaaaaaaaaaats&,&aaaaaaaaaaaaaatt&,&aaaaaaaaaaaaaatu&,&aaaaaaaaaaaaaatv&,&aaaaaaaaaaaaaatw&,&aaaaaaaaaaaaaatx&,&aaaaaaaaaaaaaaty&,&aaaaaaaaaaaaaatz&,&aaaaaaaaaaaaaaua&,&aaaaaaaaaaaaaaub&,&aaaaaaaaaaaaaauc&,&aaaaaaaaaaaaaaud&,&aaaaaaaaaaaaaaue&,&aaaaaaaaaaaaaauf&,&aaaaaaaaaaaaaaug&,&aaaaaaaaaaaaaauh&,&aaaaaaaaaaaaaaui&,&aaaaaaaaaaaaaauj&,&aaaaaaaaaaaaaauk&,&aaaaaaaaaaaaaaul&,&aaaaaaaaaaaaaaum&,&aaaaaaaaaaaaaaun&,&aaaaaaaaaaaaaauo&,&aaaaaaaaaaaaaaup&,&aaaaaaaaaaaaaauq&,&aaaaaaaaaaaaaaur&,&aaaaaaaaaaaaaaus&,&aaaaaaaaaaaaaaut&,&aaaaaaaaaaaaaauu&,&aaaaaaaaaaaaaauv&,&aaaaaaaaaaaaaauw&,&aaaaaaaaaaaaaaux&,&aaaaaaaaaaaaaauy&,&aaaaaaaaaaaaaauz&,&aaaaaaaaaaaaaava&,&aaaaaaaaaaaaaavb&,&aaaaaaaaaaaaaavc&,&aaaaaaaaaaaaaavd&,&aaaaaaaaaaaaaave&,&aaaaaaaaaaaaaavf&,&aaaaaaaaaaaaaavg&,&aaaaaaaaaaaaaavh&,&aaaaaaaaaaaaaavi&,&aaaaaaaaaaaaaavj&,&aaaaaaaaaaaaaavk&,&aaaaaaaaaaaaaavl&,&aaaaaaaaaaaaaavm&,&aaaaaaaaaaaaaavn&,&aaaaaaaaaaaaaavo&,&aaaaaaaaaaaaaavp&,&aaaaaaaaaaaaaavq&,&aaaaaaaaaaaaaavr&,&aaaaaaaaaaaaaavs&,&aaaaaaaaaaaaaavt&,&aaaaaaaaaaaaaavu&,&aaaaaaaaaaaaaavv&,&aaaaaaaaaaaaaavw&,&aaaaaaaaaaaaaavx&,&aaaaaaaaaaaaaavy&,&aaaaaaaaaaaaaavz&,&aaaaaaaaaaaaaawa&,&aaaaaaaaaaaaaawb&,&aaaaaaaaaaaaaawc&,&aaaaaaaaaaaaaawd&,&aaaaaaaaaaaaaawe&,&aaaaaaaaaaaaaawf&,&aaaaaaaaaaaaaawg&,&aaaaaaaaaaaaaawh&,&aaaaaaaaaaaaaawi&,&aaaaaaaaaaaaaawj&,&aaaaaaaaaaaaaawk&,&aaaaaaaaaaaaaawl&,&aaaaaaaaaaaaaawm&,&aaaaaaaaaaaaaawn&,&aaaaaaaaaaaaaawo&,&aaaaaaaaaaaaaawp&,&aaaaaaaaaaaaaawq&,&aaaaaaaaaaaaaawr&,&aaaaaaaaaaaaaaws&,&aaaaaaaaaaaaaawt&,&aaaaaaaaaaaaaawu&,&aaaaaaaaaaaaaawv&,&aaaaaaaaaaaaaaww&,&aaaaaaaaaaaaaawx&,&aaaaaaaaaaaaaawy&,&aaaaaaaaaaaaaawz&,&aaaaaaaaaaaaaaxa&,&aaaaaaaaaaaaaaxb&,&aaaaaaaaaaaaaaxc&,&aaaaaaaaaaaaaaxd&,&aaaaaaaaaaaaaaxe&,&aaaaaaaaaaaaaaxf&,&aaaaaaaaaaaaaaxg&,&aaaaaaaaaaaaaaxh&,&aaaaaaaaaaaaaaxi&,&aaaaaaaaaaaaaaxj&,&aaaaaaaaaaaaaaxk&,&aaaaaaaaaaaaaaxl&,&aaaaaaaaaaaaaaxm&,&aaaaaaaaaaaaaaxn&,&aaaaaaaaaaaaaaxo&,&aaaaaaaaaaaaaaxp&,&aaaaaaaaaaaaaaxq&,&aaaaaaaaaaaaaaxr&,&aaaaaaaaaaaaaaxs&,&aaaaaaaaaaaaaaxt&,&aaaaaaaaaaaaaaxu&,&aaaaaaaaaaaaaaxv&,&aaaaaaaaaaaaaaxw&,&aaaaaaaaaaaaaaxx&,&aaaaaaaaaaaaaaxy&,&aaaaaaaaaaaaaaxz&,&aaaaaaaaaaaaaaya&,&aaaaaaaaaaaaaayb&,&aaaaaaaaaaaaaayc&,&aaaaaaaaaaaaaayd&,&aaaaaaaaaaaaaaye&,&aaaaaaaaaaaaaayf&,&aaaaaaaaaaaaaayg&,&aaaaaaaaaaaaaayh&,&aaaaaaaaaaaaaayi&,&aaaaaaaaaaaaaayj&,&aaaaaaaaaaaaaayk&,&aaaaaaaaaaaaaayl&,&aaaaaaaaaaaaaaym&,&aaaaaaaaaaaaaayn&,&aaaaaaaaaaaaaayo&,&aaaaaaaaaaaaaayp&,&aaaaaaaaaaaaaayq&,&aaaaaaaaaaaaaayr&,&aaaaaaaaaaaaaays&,&aaaaaaaaaaaaaayt&,&aaaaaaaaaaaaaayu&,&aaaaaaaaaaaaaayv&,&aaaaaaaaaaaaaayw&,&aaaaaaaaaaaaaayx&,&aaaaaaaaaaaaaayy&,&aaaaaaaaaaaaaayz&,&aaaaaaaaaaaaaaza&,&aaaaaaaaaaaaaazb&,&aaaaaaaaaaaaaazc&,&aaaaaaaaaaaaaazd&,&aaaaaaaaaaaaaaze&,&aaaaaaaaaaaaaazf&,&aaaaaaaaaaaaaazg&,&aaaaaaaaaaaaaazh&,&aaaaaaaaaaaaaazi&,&aaaaaaaaaaaaaazj&,&aaaaaaaaaaaaaazk&,&aaaaaaaaaaaaaazl&,&aaaaaaaaaaaaaazm&,&aaaaaaaaaaaaaazn&,&aaaaaaaaaaaaaazo&,&aaaaaaaaaaaaaazp&,&aaaaaaaaaaaaaazq&,&aaaaaaaaaaaaaazr&,&aaaaaaaaaaaaaazs&,&aaaaaaaaaaaaaazt&,&aaaaaaaaaaaaaazu&,&aaaaaaaaaaaaaazv&,&aaaaaaaaaaaaaazw&,&aaaaaaaaaaaaaazx&,&aaaaaaaaaaaaaazy&,&aaaaaaaaaaaaaazz&,&aaaaaaaaaaaaaaaa&,&aaaaaaaaaaaaaaab&,&aaaaaaaaaaaaaaac&,&aaaaaaaaaaaaaaad&,&aaaaaaaaaaaaaaae&,&aaaaaaaaaaaaaaaf&,&aaaaaaaaaaaaaaag&,&aaaaaaaaaaaaaaah&,&aaaaaaaaaaaaaaai&,&aaaaaaaaaaaaaaaj&,&aaaaaaaaaaaaaaak&,&aaaaaaaaaaaaaaal&,&aaaaaaaaaaaaaaam&,&aaaaaaaaaaaaaaan&,&aaaaaaaaaaaaaaao&,&aaaaaaaaaaaaaaap&,&aaaaaaaaaaaaaaaq&,&aaaaaaaaaaaaaaar&,&aaaaaaaaaaaaaaas&,&aaaaaaaaaaaaaaat&,&aaaaaaaaaaaaaaau&,&aaaaaaaaaaaaaaav&,&aaaaaaaaaaaaaaaw&,&aaaaaaaaaaaaaaax&,&aaaaaaaaaaaaaaay&,&aaaaaaaaaaaaaaaz&,&aaaaaaaaaaaaaaba&,&aaaaaaaaaaaaaabb&,&aaaaaaaaaaaaaabc&,&aaaaaaaaaaaaaabd&,&aaaaaaaaaaaaaabe&,&aaaaaaaaaaaaaabf&,&aaaaaaaaaaaaaabg&,&aaaaaaaaaaaaaabh&,&aaaaaaaaaaaaaabi&,&aaaaaaaaaaaaaabj&,&aaaaaaaaaaaaaabk&,&aaaaaaaaaaaaaabl&,&aaaaaaaaaaaaaabm&,&aaaaaaaaaaaaaabn&,&aaaaaaaaaaaaaabo&,&aaaaaaaaaaaaaabp&,&aaaaaaaaaaaaaabq&,&aaaaaaaaaaaaaabr&,&aaaaaaaaaaaaaabs&,&aaaaaaaaaaaaaabt&,&aaaaaaaaaaaaaabu&,&aaaaaaaaaaaaaabv&,&aaaaaaaaaaaaaabw&,&aaaaaaaaaaaaaabx&,&aaaaaaaaaaaaaaby&,&aaaaaaaaaaaaaabz&,&aaaaaaaaaaaaaaca&,&aaaaaaaaaaaaaacb&,&aaaaaaaaaaaaaacc&,&aaaaaaaaaaaaaacd&,&aaaaaaaaaaaaaace&,&aaaaaaaaaaaaaacf&,&aaaaaaaaaaaaaacg&,&aaaaaaaaaaaaaach&,&aaaaaaaaaaaaaaci&,&aaaaaaaaaaaaaacj&,&aaaaaaaaaaaaaack&,&aaaaaaaaaaaaaacl&,&aaaaaaaaaaaaaacm&,&aaaaaaaaaaaaaacn&,&aaaaaaaaaaaaaaco&,&aaaaaaaaaaaaaacp&,&aaaaaaaaaaaaaacq&,&aaaaaaaaaaaaaacr&,&aaaaaaaaaaaaaacs&,&aaaaaaaaaaaaaact&,&aaaaaaaaaaaaaacu&,&aaaaaaaaaaaaaacv&,&aaaaaaaaaaaaaacw&,&aaaaaaaaaaaaaacx&,&aaaaaaaaaaaaaacy&,&aaaaaaaaaaaaaacz&,&aaaaaaaaaaaaaada&,&aaaaaaaaaaaaaadb&,&aaaaaaaaaaaaaadc&,&aaaaaaaaaaaaaadd&,&aaaaaaaaaaaaaade&,&aaaaaaaaaaaaaadf&,&aaaaaaaaaaaaaadg&,&aaaaaaaaaaaaaadh&,&aaaaaaaaaaaaaadi&,&aaaaaaaaaaaaaadj&,&aaaaaaaaaaaaaadk&,&aaaaaaaaaaaaaadl&,&aaaaaaaaaaaaaadm&,&aaaaaaaaaaaaaadn&,&aaaaaaaaaaaaaado&,&aaaaaaaaaaaaaadp&,&aaaaaaaaaaaaaadq&,&aaaaaaaaaaaaaadr&,&aaaaaaaaaaaaaads&,&aaaaaaaaaaaaaadt&,&aaaaaaaaaaaaaadu&,&aaaaaaaaaaaaaadv&,&aaaaaaaaaaaaaadw&,&aaaaaaaaaaaaaadx&,&aaaaaaaaaaaaaady&,&aaaaaaaaaaaaaadz&,&aaaaaaaaaaaaaaea&,&aaaaaaaaaaaaaaeb&,&aaaaaaaaaaaaaaec&,&aaaaaaaaaaaaaaed&,&aaaaaaaaaaaaaaee&,&aaaaaaaaaaaaaaef&,&aaaaaaaaaaaaaaeg&,&aaaaaaaaaaaaaaeh&,&aaaaaaaaaaaaaaei&,&aaaaaaaaaaaaaaej&,&aaaaaaaaaaaaaaek&,&aaaaaaaaaaaaaael&,&aaaaaaaaaaaaaaem&,&aaaaaaaaaaaaaaen&,&aaaaaaaaaaaaaaeo&,&aaaaaaaaaaaaaaep&,&aaaaaaaaaaaaaaeq&,&aaaaaaaaaaaaaaer&,&aaaaaaaaaaaaaaes&,&aaaaaaaaaaaaaaet&,&aaaaaaaaaaaaaaeu&,&aaaaaaaaaaaaaaev&,&aaaaaaaaaaaaaaew&,&aaaaaaaaaaaaaaex&,&aaaaaaaaaaaaaaey&,&aaaaaaaaaaaaaaez&,&aaaaaaaaaaaaaafa&,&aaaaaaaaaaaaaafb&,&aaaaaaaaaaaaaafc&,&aaaaaaaaaaaaaafd&,&aaaaaaaaaaaaaafe&,&aaaaaaaaaaaaaaff&,&aaaaaaaaaaaaaafg&,&aaaaaaaaaaaaaafh&,&aaaaaaaaaaaaaafi&,&aaaaaaaaaaaaaafj&,&aaaaaaaaaaaaaafk&,&aaaaaaaaaaaaaafl&,&aaaaaaaaaaaaaafm&,&aaaaaaaaaaaaaafn&,&aaaaaaaaaaaaaafo&,&aaaaaaaaaaaaaafp&,&aaaaaaaaaaaaaafq&,&aaaaaaaaaaaaaafr&,&aaaaaaaaaaaaaafs&,&aaaaaaaaaaaaaaft&,&aaaaaaaaaaaaaafu&,&aaaaaaaaaaaaaafv&,&aaaaaaaaaaaaaafw&,&aaaaaaaaaaaaaafx&,&aaaaaaaaaaaaaafy&,&aaaaaaaaaaaaaafz&,&aaaaaaaaaaaaaaga&,&aaaaaaaaaaaaaagb&,&aaaaaaaaaaaaaagc&,&aaaaaaaaaaaaaagd&,&aaaaaaaaaaaaaage&,&aaaaaaaaaaaaaagf&,&aaaaaaaaaaaaaagg&,&aaaaaaaaaaaaaagh&,&aaaaaaaaaaaaaagi&,&aaaaaaaaaaaaaagj&,&aaaaaaaaaaaaaagk&,&aaaaaaaaaaaaaagl&,&aaaaaaaaaaaaaagm&,&aaaaaaaaaaaaaagn&,&aaaaaaaaaaaaaago&,&aaaaaaaaaaaaaagp&,&aaaaaaaaaaaaaagq&,&aaaaaaaaaaaaaagr&,&aaaaaaaaaaaaaags&,&aaaaaaaaaaaaaagt&,&aaaaaaaaaaaaaagu&,&aaaaaaaaaaaaaagv&,&aaaaaaaaaaaaaagw&,&aaaaaaaaaaaaaagx&,&aaaaaaaaaaaaaagy&,&aaaaaaaaaaaaaagz&,&aaaaaaaaaaaaaaha&,&aaaaaaaaaaaaaahb&,&aaaaaaaaaaaaaahc&,&aaaaaaaaaaaaaahd&,&aaaaaaaaaaaaaahe&,&aaaaaaaaaaaaaahf&,&aaaaaaaaaaaaaahg&,&aaaaaaaaaaaaaahh&,&aaaaaaaaaaaaaahi&,&aaaaaaaaaaaaaahj&,&aaaaaaaaaaaaaahk&,&aaaaaaaaaaaaaahl&,&aaaaaaaaaaaaaahm&,&aaaaaaaaaaaaaahn&,&aaaaaaaaaaaaaaho&,&aaaaaaaaaaaaaahp&,&aaaaaaaaaaaaaahq&,&aaaaaaaaaaaaaahr&,&aaaaaaaaaaaaaahs&,&aaaaaaaaaaaaaaht&,&aaaaaaaaaaaaaahu&,&aaaaaaaaaaaaaahv&,&aaaaaaaaaaaaaahw&,&aaaaaaaaaaaaaahx&,&aaaaaaaaaaaaaahy&,&aaaaaaaaaaaaaahz&,&aaaaaaaaaaaaaaia&,&aaaaaaaaaaaaaaib&,&aaaaaaaaaaaaaaic&,&aaaaaaaaaaaaaaid&,&aaaaaaaaaaaaaaie&,&aaaaaaaaaaaaaaif&,&aaaaaaaaaaaaaaig&,&aaaaaaaaaaaaaaih&,&aaaaaaaaaaaaaaii&,&aaaaaaaaaaaaaaij&,&aaaaaaaaaaaaaaik&,&aaaaaaaaaaaaaail&,&aaaaaaaaaaaaaaim&,&aaaaaaaaaaaaaain&,&aaaaaaaaaaaaaaio&,&aaaaaaaaaaaaaaip&,&aaaaaaaaaaaaaaiq&,&aaaaaaaaaaaaaair&,&aaaaaaaaaaaaaais&,&aaaaaaaaaaaaaait&,&aaaaaaaaaaaaaaiu&,&aaaaaaaaaaaaaaiv&,&aaaaaaaaaaaaaaiw&,&aaaaaaaaaaaaaaix&,&aaaaaaaaaaaaaaiy&,&aaaaaaaaaaaaaaiz&,&aaaaaaaaaaaaaaja&,&aaaaaaaaaaaaaajb&,&aaaaaaaaaaaaaajc&,&aaaaaaaaaaaaaajd&,&aaaaaaaaaaaaaaje&,&aaaaaaaaaaaaaajf&,&aaaaaaaaaaaaaajg&,&aaaaaaaaaaaaaajh&,&aaaaaaaaaaaaaaji&,&aaaaaaaaaaaaaajj&,&aaaaaaaaaaaaaajk&,&aaaaaaaaaaaaaajl&,&aaaaaaaaaaaaaajm&,&aaaaaaaaaaaaaajn&,&aaaaaaaaaaaaaajo&,&aaaaaaaaaaaaaajp&,&aaaaaaaaaaaaaajq&,&aaaaaaaaaaaaaajr&,&aaaaaaaaaaaaaajs&,&aaaaaaaaaaaaaajt&,&aaaaaaaaaaaaaaju&,&aaaaaaaaaaaaaajv&,&aaaaaaaaaaaaaajw&,&aaaaaaaaaaaaaajx&,&aaaaaaaaaaaaaajy&,&aaaaaaaaaaaaaajz&,&aaaaaaaaaaaaaaka&,&aaaaaaaaaaaaaakb&,&aaaaaaaaaaaaaakc&,&aaaaaaaaaaaaaakd&,&aaaaaaaaaaaaaake&,&aaaaaaaaaaaaaakf&,&aaaaaaaaaaaaaakg&,&aaaaaaaaaaaaaakh&,&aaaaaaaaaaaaaaki&,&aaaaaaaaaaaaaakj&,&aaaaaaaaaaaaaakk&,&aaaaaaaaaaaaaakl&,&aaaaaaaaaaaaaakm&,&aaaaaaaaaaaaaakn&,&aaaaaaaaaaaaaako&,&aaaaaaaaaaaaaakp&,&aaaaaaaaaaaaaakq&,&aaaaaaaaaaaaaakr&,&aaaaaaaaaaaaaaks&,&aaaaaaaaaaaaaakt&,&aaaaaaaaaaaaaaku&,&aaaaaaaaaaaaaakv&,&aaaaaaaaaaaaaakw&,&aaaaaaaaaaaaaakx&,&aaaaaaaaaaaaaaky&,&aaaaaaaaaaaaaakz&,&aaaaaaaaaaaaaala&,&aaaaaaaaaaaaaalb&,&aaaaaaaaaaaaaalc&,&aaaaaaaaaaaaaald&,&aaaaaaaaaaaaaale&,&aaaaaaaaaaaaaalf&,&aaaaaaaaaaaaaalg&,&aaaaaaaaaaaaaalh&,&aaaaaaaaaaaaaali&,&aaaaaaaaaaaaaalj&,&aaaaaaaaaaaaaalk&,&aaaaaaaaaaaaaall&]
class Solution {
int dx[4]={-1,0,1,0};
int dy[4]={0,-1,0,1};
char used='#';
vector& vector&char& &
vector& vector&char& &
vector& string&
vector&string& findWords(vector& vector&char& && board, vector&string&& words)
row=board.size();
if (row==0)
col=board[0].size();
grid.resize(row+2);
for(int i=0;i&=col+1;i++)
grid[0].push_back(used);
for(int i=0;i&i++)
grid[i+1].push_back(used);
for(int j=0;j&j++)
grid[i+1].push_back(board[i][j]);
grid[i+1].push_back(used);
for(int i=0;i&=col+1;i++)
grid[row+1].push_back(used);
col+=2;row+=2;
int lw=words.size();
vector&string&
map&string,bool&
for(int t=0;t&t++)
if (repeat.find(words[t])==repeat.end())
repeat[words[t]]=
tmpw.push_back(words[t]);
lw=words.size();
for(int t=0;t&t++)
str=words[t];
targetk=str.size();
for(int i=0;i&i++)
for(int j=0;j&j++)
if (grid[i][j]==str[0])
char saved = grid[i][j];
grid[i][j]=
depthSearsh(i,j,1);
grid[i][j]=
void depthSearsh(int x,int y,int k)
if (k==targetk)
ans.push_back(str);
for(int i=0;i&4;i++)
int tmpx=x+dx[i],tmpy=y+dy[i];
if (grid[tmpx][tmpy]==str[k])
saved=grid[tmpx][tmpy];
grid[tmpx][tmpy]=
depthSearsh(tmpx,tmpy,k+1);
grid[tmpx][tmpy]=
84 Largest Rectangle in Histogram
// -------------------- Seeing Discuss ----------
copying codes
https://discuss.leetcode.com/topic/14406/my-concise-code-20ms-stack-based-o-n-one-trick-used
The idea is simple, use a stack to save the index of each vector entry
once the current entry is smaller than the one with the index s.top(), then that means the
rectangle with the height height[s.top()] ends at the current position, so calculate its area
and update the maximum.
The only trick I use to avoid checking whether the stack is empty (due to pop) and also avoiding
emptying the stack at the end (i.e. after going through the vector, s is not empty and we have to
consider those in the stack) is to put a dummy &0& at the beginning of vector &height& and the end
of &height&: the first one makes sure the stack will never be empty (since all the height entries are &=0)
and the last one will flush all the remaining non-zero entries of the stack at the end of &for& iteration.
This trick helps us keep the code concise.
class Solution {
int largestRectangleArea(vector&int&& heights)
heights.insert(heights.begin(),0);
heights.push_back(0);
int len = heights.size();
int i ,res = 0,
stack&int&
s.push(0);
for(i=1;i&i++)
while(heights[i]&heights[idx=s.top()])
res = max(res,heights[idx] * (i-s.top()-1));
s.push(i);
heights.erase(heights.begin());
heights.pop_back();
// ---------------------- TLE -------------------
92 / 94 test cases passed.
[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,02,05,08,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,01,04,07,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,00,03,06,09,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]
class Solution {
int largestRectangleArea(vector&int&& heights)
int ans = 0;
int lh = heights.size();
int lhm = lh -1;
for(int i=0;i&i++)
if (heights[i]&=0)
left =right =
while (left&0 && heights[left]&=heights[i])
if (heights[left]&heights[i]) left++;
while (right&lhm && heights[right]&=heights[i])
if (heights[right]&heights[i]) right--;
int nums = (right-left+1)*heights[i];
if (nums&ans) ans=
130 Surrounded Regions
// ----------------Seeing Discuss-----------
copying codes
https://discuss.leetcode.com/topic/17224/a-really-simple-and-readable-c-solution-only-cost-12ms
First, check the four border of the matrix. If there is a element is
'O', alter it and all its neighbor 'O' elements to '1'.
Then ,alter all the 'O' to 'X'
At last,alter all the '1' to 'O'
哦,我还说有要怎么处理边界上的O,原来一开始就把所有跟边界连着的O都标记出来。
然后,最后再把这些标记过的O都变成O。
先把特殊的地方找出来单独标注,最后处理完所有后,再把特殊的地方覆盖上去。
也是不错的办法。
class Solution {
void solve(vector&vector&char& && board)
int row = board.size();
int col=board[0].size();
for(i=0;i&i++)
check(board,i,0,row,col);
check(board,i,col-1,row,col);
for(j=1;j+1&j++)
check(board,0,j,row,col);
check(board,row-1,j,row,col);
for(i=0;i&i++)
for(j=0;j&j++)
if (board[i][j]=='O') board[i][j]='X';
for(i=0;i&i++)
for(j=0;j&j++)
if(board[i][j]=='1')
board[i][j]='O';
void check(vector&vector&char& &&vec,int i,int j,int row,int col)
if(vec[i][j]=='O')
vec[i][j]='1';
if(i&1) check(vec,i-1,j,row,col);
if(j&1) check(vec,i,j-1,row,col);
if(i+1&row) check(vec,i+1,j,row,col);
if(j+1&col) check(vec,i,j+1,row,col);
// -----------------WA-------------
/* 26 / 60 test cases passed.
My thoughts:
1. 对于每个联通快,每次看连着的O,若这个O不在边界上,则如集合;否则,整个快都报废;
2. 当一整块没有可扩展的O,并且,没有O在边界上,则把他们都变成X
3. 注意判重
218 The Skyline Problem
// ------------------- Seeing Discuss ---------------
copying codes
https://discuss.leetcode.com/topic/25794/17-line-o-n-log-n-time-o-n-space-c-accepted-easy-solution-w-explanations
Use a multimap to sort all boundary points. For a start point of an interval,
let th otherwise, let the height be negative. Time complexity: O(n log n)
Use a multiset (rather than a heap/priority_queue) to maintain the current set of heights
to be considered. If a new start point is met, insert the height into the set, otherwise,
delete the height. The current max height is the back() element of the multiset.
For each point, the time complexity is O(log n). The overall time complexity is O(n log n).
Delete the points with equal heights. Time: O(n)
Time Complexity: O(n log n)
Space Complexity: O(n)
class Solution {
vector&pair&int, int& & getSkyline(vector&vector&int&&& buildings)
multimap&int,int&
for(const vector&int& & building:buildings)
coords.emplace(building[0],building[2]);
coords.emplace(building[1],-building[2]);
multiset&int& heights ={0};
vector&pair&int,int& &
int x = -1;
int y = 0;
for(const pair&int,int& &p : coords)
if((x&=0)&&(p.first!=x)&&(corners.empty() || (corners.rbegin()-&second !=y)))
corners.emplace_back(x,y);
if(p.second&=0)
heights.insert(p.second);
heights.erase(heights.find(-p.second));
y=*heights.rbegin();
if(!corners.empty()) corners.emplace_back(x,0);
LeetCode 841 题解
841. Keys and Rooms
题目大意:给你n个房间,每个房间里有一些钥匙,你在房间0,问能不能去到所有的房间。
解题思路:直接搜索一下就好了...
【LeetCode】841. Keys and Rooms 解题报告(Python)
【LeetCode】841. Keys and Rooms 解题报告(Python)
标签(空格分隔): LeetCode
题目地址:https://leetcode.com/problems...
没有更多推荐了,

我要回帖

更多关于 receive的名词 的文章

 

随机推荐