File tree Expand file tree Collapse file tree 12 files changed +245
-0
lines changed Expand file tree Collapse file tree 12 files changed +245
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Foo {
2
+ public:
3
+ Foo () {
4
+ flag1 = 0 ;
5
+ flag2 = 0 ;
6
+ }
7
+
8
+ void first (function<void ()> printFirst) {
9
+
10
+ // printFirst() outputs "first". Do not change or remove this line.
11
+ printFirst ();
12
+ flag1 = 1 ;
13
+ }
14
+
15
+ void second (function<void ()> printSecond) {
16
+
17
+ // printSecond() outputs "second". Do not change or remove this line.
18
+ while (flag1 == 0 )
19
+ ;
20
+ printSecond ();
21
+ flag2 = 1 ;
22
+ }
23
+
24
+ void third (function<void ()> printThird) {
25
+
26
+ // printThird() outputs "third". Do not change or remove this line.
27
+ while (flag2 == 0 )
28
+ ;
29
+ printThird ();
30
+ }
31
+ private:
32
+ volatile int flag1;
33
+ volatile int flag2;
34
+ };
Original file line number Diff line number Diff line change
1
+ vector<vector<string>> displayTable (vector<vector<string>>& orders) {
2
+ int len = orders.size ();
3
+ map<int , map<string,int >> mp;
4
+ set<string> st;
5
+
6
+ for (int i = 0 ; i < len; ++i)
7
+ {
8
+ mp[atoi (orders[i][1 ].c_str ())][orders[i][2 ]]++;
9
+ st.insert (orders[i][2 ]);
10
+ }
11
+
12
+ int reslen = mp.size ()+1 ;
13
+ int foodnum = st.size ();
14
+ vector<vector<string>> res (reslen, vector<string>(foodnum+1 , " 0" ));
15
+ res[0 ][0 ] = " Table" ;
16
+
17
+ int i = 1 ;
18
+ for (auto iter = st.begin (); iter != st.end (); ++iter)
19
+ {
20
+ res[0 ][i++] = *iter;
21
+ }
22
+
23
+ i = 1 ;
24
+ for (auto iter = mp.begin (); iter != mp.end (); ++iter)
25
+ {
26
+ res[i][0 ] = to_string (iter->first );
27
+ int j = 1 ;
28
+ for (auto iterJ = st.begin (); iterJ != st.end (); ++iterJ)
29
+ {
30
+ if ((iter->second ).find (*iterJ) == iter->second .end ())
31
+ res[i][j++] = " 0" ;
32
+ else
33
+ res[i][j++] = to_string ((iter->second )[*iterJ]);
34
+ }
35
+ ++i;
36
+ }
37
+
38
+ return res;
39
+ }
Original file line number Diff line number Diff line change
1
+ int maxProductDifference (vector<int >& nums) {
2
+ sort (nums.begin (), nums.end ());
3
+ int len = nums.size ();
4
+
5
+ return nums[len-1 ]*nums[len-2 ] - nums[0 ]*nums[1 ];
6
+ }
Original file line number Diff line number Diff line change
1
+ vector<int > getConcatenation (vector<int >& nums) {
2
+ int len = nums.size ();
3
+ vector<int > res (2 *len);
4
+ res.assign (nums.begin (), nums.end ());
5
+ res.insert (res.end (), nums.begin (), nums.end ());
6
+
7
+ return res;
8
+ }
Original file line number Diff line number Diff line change
1
+ int canBeTypedWords (string text, string brokenLetters) {
2
+ int flag[26 ] = {0 };
3
+ int len = brokenLetters.size ();
4
+ for (int i = 0 ; i < len; ++i)
5
+ {
6
+ flag[brokenLetters[i]-' a' ] = 1 ;
7
+ }
8
+
9
+ int textlen = text.size ();
10
+ int res = 0 ;
11
+ int i = 0 ;
12
+ bool isbroke = false ;
13
+ while (i < textlen)
14
+ {
15
+ if (text[i] == ' ' )
16
+ {
17
+ if (isbroke == false )
18
+ ++res;
19
+ isbroke = false ;
20
+ }
21
+ else if (!isbroke && flag[text[i]-' a' ] == 1 )
22
+ {
23
+ isbroke = true ;
24
+ }
25
+ ++i;
26
+ }
27
+ if (isbroke == false )
28
+ ++res;
29
+
30
+ return res;
31
+ }
Original file line number Diff line number Diff line change
1
+ bool areOccurrencesEqual (string s) {
2
+ int counts[26 ] = {0 };
3
+ int len = s.size ();
4
+ for (int i = 0 ; i < len; ++i)
5
+ {
6
+ ++counts[s[i]-' a' ];
7
+ }
8
+
9
+ int num = 0 ;
10
+ for (int i = 0 ; i < 26 ; ++i)
11
+ {
12
+ if (counts[i] > 0 )
13
+ {
14
+ if (num == 0 )
15
+ num = counts[i];
16
+ else if (counts[i] != num)
17
+ return false ;
18
+ }
19
+ }
20
+
21
+ return true ;
22
+ }
Original file line number Diff line number Diff line change
1
+ int numOfStrings (vector<string>& patterns, string word) {
2
+ int len = patterns.size ();
3
+ int res = 0 ;
4
+ for (int i = 0 ; i < len; ++i)
5
+ {
6
+ if (word.find (patterns[i]) != string::npos)
7
+ ++res;
8
+ }
9
+
10
+ return res;
11
+ }
Original file line number Diff line number Diff line change
1
+ int findGCD (vector<int >& nums) {
2
+ int len = nums.size ();
3
+ int minval = nums[0 ], maxval = nums[0 ];
4
+ for (int i = 1 ; i < len; ++i)
5
+ {
6
+ if (nums[i] < minval)
7
+ minval = nums[i];
8
+ if (nums[i] > maxval)
9
+ maxval = nums[i];
10
+ }
11
+
12
+ return gcd (minval, maxval);
13
+ }
14
+
15
+ int gcd (int a, int b)
16
+ {
17
+ if (a > b)
18
+ {
19
+ int tmp = a;
20
+ a = b;
21
+ b = tmp;
22
+ }
23
+
24
+ if (b%a == 0 )
25
+ return a;
26
+ else
27
+ {
28
+ b %= a;
29
+ return gcd (b, a);
30
+ }
31
+ }
Original file line number Diff line number Diff line change
1
+ int findMiddleIndex (vector<int >& nums) {
2
+ int len = nums.size ();
3
+ vector<int > subsum (len+1 , 0 );
4
+ int sum = 0 ;
5
+ subsum[0 ] = 0 ;
6
+ for (int i = 1 ; i < len+1 ; ++i)
7
+ {
8
+ sum += nums[i-1 ];
9
+ subsum[i] = sum;
10
+ }
11
+
12
+ int tmp = subsum[len];
13
+ for (int i = 0 ; i < len; ++i)
14
+ {
15
+ if (subsum[i] == tmp-nums[i])
16
+ return i;
17
+ tmp -= nums[i];
18
+ }
19
+
20
+ return -1 ;
21
+ }
Original file line number Diff line number Diff line change
1
+ string reversePrefix (string word, char ch) {
2
+ int index = word.find (ch);
3
+ if (index != string::npos)
4
+ {
5
+ int i = 0 , j = index;
6
+ while (i < j)
7
+ {
8
+ swap (word[i], word[j]);
9
+ ++i;
10
+ --j;
11
+ }
12
+ }
13
+
14
+ return word;
15
+ }
Original file line number Diff line number Diff line change
1
+ int countKDifference (vector<int >& nums, int k) {
2
+ int res = 0 ;
3
+ int len = nums.size ();
4
+ for (int i = 0 ; i < len-1 ; ++i)
5
+ {
6
+ for (int j = i+1 ; j < len; ++j)
7
+ {
8
+ if (abs (nums[i]-nums[j]) == k)
9
+ ++res;
10
+ }
11
+ }
12
+
13
+ return res;
14
+ }
Original file line number Diff line number Diff line change
1
+ int finalValueAfterOperations (vector<string>& operations) {
2
+ int len = operations.size ();
3
+ int result = 0 ;
4
+ for (int i = 0 ; i < len; ++i)
5
+ {
6
+ if (operations[i].find (' +' ) != string::npos)
7
+ ++result;
8
+ else
9
+ --result;
10
+ }
11
+
12
+ return result;
13
+ }
You can’t perform that action at this time.
0 commit comments