Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 3c58ad7

Browse files
raof01azl397985856
authored andcommitted
* odd-even-linked-list: add C++ implementation * move-zeros: add C++ implementation * subsets: add C++ implementation
1 parent a0027f5 commit 3c58ad7

File tree

2 files changed

+50
-1
lines changed

2 files changed

+50
-1
lines changed

‎problems/283.move-zeroes.md‎

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ Minimize the total number of operations.
3131
3232

3333
## 代码
34+
* 语言支持:JS,C++
35+
36+
JavaScript Code:
3437
```js
3538
/*
3639
* @lc app=leetcode id=283 lang=javascript
@@ -79,4 +82,26 @@ var moveZeroes = function(nums) {
7982
}
8083
};
8184
```
82-
85+
C++ Code:
86+
> 解题思想与上面JavaScript一致,做了少许代码优化(非性能优化,因为时间复杂度都是O(n)):
87+
> 增加一个游标来记录下一个待处理的元素的位置,这样只需要写一次循环即可。
88+
```C++
89+
class Solution {
90+
public:
91+
void moveZeroes(vector<int>& nums) {
92+
vector<int>::size_type nonZero = 0;
93+
vector<int>::size_type next = 0;
94+
while (next < nums.size()) {
95+
if (nums[next] != 0) {
96+
// 使用std::swap()会带来8ms的性能损失
97+
// swap(nums[next], nums[nonZero]);
98+
auto tmp = nums[next];
99+
nums[next] = nums[nonZero];
100+
nums[nonZero] = tmp;
101+
++nonZero;
102+
}
103+
++next;
104+
}
105+
}
106+
};
107+
```

‎problems/78.subsets.md‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ Output:
4949

5050
## 代码
5151

52+
* 语言支持:JS,C++
53+
54+
JavaScript Code:
5255
```js
5356

5457
/*
@@ -104,6 +107,27 @@ var subsets = function(nums) {
104107
return list;
105108
};
106109
```
110+
C++ Code:
111+
```C++
112+
class Solution {
113+
public:
114+
vector<vector<int>> subsets(vector<int>& nums) {
115+
auto ret = vector<vector<int>>();
116+
auto tmp = vector<int>();
117+
backtrack(ret, tmp, nums, 0);
118+
return ret;
119+
}
120+
121+
void backtrack(vector<vector<int>>& list, vector<int>& tempList, vector<int>& nums, int start) {
122+
list.push_back(tempList);
123+
for (auto i = start; i < nums.size(); ++i) {
124+
tempList.push_back(nums[i]);
125+
backtrack(list, tempList, nums, i + 1);
126+
tempList.pop_back();
127+
}
128+
}
129+
};
130+
```
107131
108132
## 相关题目
109133

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /