File tree 4 files changed +128
-0
lines changed
4 files changed +128
-0
lines changed Original file line number Diff line number Diff line change @@ -124,6 +124,44 @@ var lengthOfLongestSubstring = function (s) {
124
124
};
125
125
```
126
126
127
+ ### ** C++**
128
+
129
+ ``` cpp
130
+ class Solution {
131
+ public:
132
+ int lengthOfLongestSubstring(string s) {
133
+ int arr[ 1024] ; // 本题的用例中,有不为小写字母的情况
134
+ for (int i = 0; i < 1024; i++) {
135
+ arr[ i] = -1;
136
+ }
137
+
138
+ int curLen = 0;
139
+ int maxLen = 0;
140
+
141
+ int len = s.size();
142
+ for (int i = 0; i < len; i++) {
143
+ int prev = arr[int(s[i])]; // 之前位置的index
144
+ if (prev < 0 || i - prev > curLen) {
145
+ // 其中,prev>0表示之前没有遇到过该字符
146
+ // i - prev > curLen 表示之前遇到的当前字符,远超当前限定的范围
147
+ // 这两种情况下,都是直接继续加就可以了
148
+ curLen++;
149
+ } else {
150
+ if (curLen > maxLen) {
151
+ maxLen = curLen;
152
+ }
153
+ curLen = i - prev; // curLen重新开始计数
154
+ }
155
+
156
+ arr[int (s[i])] = i;
157
+ }
158
+
159
+ return maxLen > curLen ? maxLen : curLen;
160
+ }
161
+ };
162
+
163
+ ```
164
+
127
165
### ** ...**
128
166
129
167
```
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ int lengthOfLongestSubstring (string s) {
4
+ int arr[1024 ]; // 本题的用例中,有不为小写字母的情况
5
+ for (int i = 0 ; i < 1024 ; i++) {
6
+ arr[i] = -1 ;
7
+ }
8
+
9
+ int curLen = 0 ;
10
+ int maxLen = 0 ;
11
+
12
+ int len = s.size ();
13
+ for (int i = 0 ; i < len; i++) {
14
+ int prev = arr[int (s[i])]; // 之前位置的index
15
+ if (prev < 0 || i - prev > curLen) {
16
+ // 其中,prev>0表示之前没有遇到过该字符
17
+ // i - prev > curLen 表示之前遇到的当前字符,远超当前限定的范围
18
+ // 这两种情况下,都是直接继续加就可以了
19
+ curLen++;
20
+ } else {
21
+ if (curLen > maxLen) {
22
+ maxLen = curLen;
23
+ }
24
+ curLen = i - prev; // curLen重新开始计数
25
+ }
26
+
27
+ arr[int (s[i])] = i;
28
+ }
29
+
30
+ return maxLen > curLen ? maxLen : curLen;
31
+ }
32
+ };
Original file line number Diff line number Diff line change @@ -110,6 +110,38 @@ var isStraight = function (nums) {
110
110
};
111
111
```
112
112
113
+ ### ** C++**
114
+
115
+ ``` cpp
116
+ class Solution {
117
+ public:
118
+ bool isStraight(vector<int >& nums) {
119
+ if (nums.size() != 5) {
120
+ return false;
121
+ }
122
+
123
+ std::sort(nums.begin(), nums.end());
124
+ int zeroNum = 0;
125
+ for (int i = 0; i < nums.size(); i++) {
126
+ if (nums[i] != 0) {
127
+ // 这题的用例中,会出现超过两个0的情况
128
+ break;
129
+ }
130
+ zeroNum++;
131
+ }
132
+
133
+ for (int i = zeroNum; i < nums.size()-1 ; i++) {
134
+ if (nums[i] == nums[i+1]) {
135
+ return false;
136
+ }
137
+ }
138
+
139
+ return nums[4] - nums[zeroNum] <= 4;
140
+ }
141
+ };
142
+
143
+ ```
144
+
113
145
### ** ...**
114
146
115
147
```
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ bool isStraight (vector<int >& nums) {
4
+ if (nums.size () != 5 ) {
5
+ return false ;
6
+ }
7
+
8
+ std::sort (nums.begin (), nums.end ());
9
+ int zeroNum = 0 ;
10
+ for (int i = 0 ; i < nums.size (); i++) {
11
+ if (nums[i] != 0 ) {
12
+ // 这题的用例中,会出现超过两个0的情况
13
+ break ;
14
+ }
15
+ zeroNum++;
16
+ }
17
+
18
+ for (int i = zeroNum; i < nums.size ()-1 ; i++) {
19
+ if (nums[i] == nums[i+1 ]) {
20
+ return false ;
21
+ }
22
+ }
23
+
24
+ return nums[4 ] - nums[zeroNum] <= 4 ;
25
+ }
26
+ };
You can’t perform that action at this time.
0 commit comments