Skip to content

Commit b76b20b

Browse files
authored
Merge pull request #3 from kwu130/remove-warning-info
refactor(cpp): improve type safety and loop conditions
2 parents ecec366 + 3c4bcfe commit b76b20b

37 files changed

Lines changed: 80 additions & 68 deletions

‎include/common.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ ListNode* build(const std::vector<int>& vec) {
2222
if (vec.empty()) return nullptr;
2323
ListNode* head = new ListNode(vec[0]);
2424
ListNode* cur = head;
25-
for (int i = 1; i < vec.size(); i++) {
25+
for (size_t i = 1; i < vec.size(); i++) {
2626
cur->next = new ListNode(vec[i]);
2727
cur = cur->next;
2828
}

‎src/1-twoSum.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class Solution {
1010
public:
1111
vector<int> twoSum(vector<int>& nums, int target) {
1212
unordered_map<int, int> hash;
13-
for (int i = 0; i < nums.size(); i++) {
13+
for (int i = 0; i < static_cast<int>(nums.size()); i++) {
1414
if (hash.contains(target - nums[i])) {
1515
return {hash[target - nums[i]], i};
1616
}

‎src/13-romanToInt.cpp‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ class Solution {
2020
m['M'] = 1000;
2121

2222
int res = 0;
23-
for (int i = 0; i < s.size(); i++) {
24-
if (i < s.size() - 1 && m[s[i]] < m[s[i + 1]]) {
23+
const int n = static_cast<int>(s.size());
24+
for (int i = 0; i < n; i++) {
25+
if (i < n - 1 && m[s[i]] < m[s[i + 1]]) {
2526
res -= m[s[i]];
2627
} else {
2728
res += m[s[i]];

‎src/14-longestCommonPrefix.cpp‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ using namespace std;
99
class Solution {
1010
public:
1111
string longestCommonPrefix(vector<string>& strs) {
12-
for (int i = 0; i < strs[0].size(); i++) {
12+
const int n = static_cast<int>(strs[0].size());
13+
for (int i = 0; i < n; i++) {
1314
for (const auto& str : strs) {
14-
if (i >= str.size() || str[i] != strs[0][i]) {
15+
if (i >= n || str[i] != strs[0][i]) {
1516
return strs[0].substr(0, i);
1617
}
1718
}

‎src/15-threeSum.cpp‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@ class Solution {
1414
}
1515
vector<vector<int>> res;
1616
ranges::sort(nums);
17-
for (int i = 0; i < nums.size() - 2; i++) {
17+
const int n = static_cast<int>(nums.size());
18+
for (int i = 0; i < n - 2; i++) {
1819
if (i > 0 && nums[i] == nums[i - 1]) {
1920
continue;
2021
}
21-
int left = i + 1, right = nums.size() - 1;
22+
int left = i + 1, right = n - 1;
2223
while (left < right) {
2324
int sum = nums[i] + nums[left] + nums[right];
2425
if (sum == 0) {

‎src/16-threeSumClosest.cpp‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@ class Solution {
1111
int threeSumClosest(vector<int>& nums, int target) {
1212
int res = nums[0] + nums[1] + nums[2];
1313
ranges::sort(nums);
14-
for (int i = 0; i < nums.size() - 2; i++) {
14+
const int n = static_cast<int>(nums.size());
15+
for (int i = 0; i < n - 2; i++) {
1516
if (i > 0 && nums[i] == nums[i - 1]) {
1617
continue;
1718
}
18-
int left = i + 1, right = nums.size() - 1;
19+
int left = i + 1, right = n - 1;
1920
while (left < right) {
2021
int sum = nums[i] + nums[left] + nums[right];
2122
if (sum == target) {

‎src/17-letterCombinations.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class Solution {
2121
const vector<string> m{"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
2222

2323
void dfs(const string& digits, int index, string&& path, vector<string>& res) {
24-
if (index == digits.size()) {
24+
if (index == static_cast<int>(digits.size())) {
2525
res.push_back(path);
2626
return;
2727
}

‎src/18-fourSum.cpp‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@ class Solution {
1616

1717
private:
1818
vector<vector<int>> kSum(vector<int>& nums, int k, int start, long target) {
19-
if (nums.size() < k || k < 2) return {};
19+
const int n = static_cast<int>(nums.size());
20+
if (n < k || k < 2) return {};
2021
vector<vector<int>> res;
2122
if (k == 2) {
22-
int left = start, right = nums.size() - 1;
23+
int left = start, right = n - 1;
2324
while (left < right) {
2425
long sum = nums[left] + nums[right];
2526
if (sum == target) {
@@ -33,13 +34,13 @@ class Solution {
3334
}
3435
}
3536
} else {
36-
for (int i = start; i < nums.size(); i++) {
37+
for (int i = start; i < n; i++) {
3738
auto sub = kSum(nums, k - 1, i + 1, target - nums[i]);
3839
for (auto& v : sub) {
3940
v.push_back(nums[i]);
4041
res.push_back(v);
4142
}
42-
while (i < nums.size() - 1 && nums[i] == nums[i + 1]) i++;
43+
while (i < n - 1 && nums[i] == nums[i + 1]) i++;
4344
}
4445
}
4546

‎src/26-removeDuplicates.cpp‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class Solution {
1111
int removeDuplicates(vector<int>& nums) {
1212
if (nums.empty()) return 0;
1313
int res = 0;
14-
for (int i = 1; i < nums.size(); i++) {
14+
for (int i = 1; i < static_cast<int>(nums.size()); i++) {
1515
if (nums[res] != nums[i]) {
1616
nums[++res] = nums[i];
1717
}
@@ -24,12 +24,12 @@ void test() {
2424
Solution s;
2525
vector<int> nums = {1, 1, 2};
2626
vector<int> expected = {1, 2};
27-
assert(s.removeDuplicates(nums) == expected.size());
27+
assert(s.removeDuplicates(nums) == static_cast<int>(expected.size()));
2828
assert(vector<int>(nums.begin(), nums.begin() + expected.size()) == expected);
2929

3030
nums = {0, 0, 1, 1, 1, 2, 2, 3, 3, 4};
3131
expected = {0, 1, 2, 3, 4};
32-
assert(s.removeDuplicates(nums) == expected.size());
32+
assert(s.removeDuplicates(nums) == static_cast<int>(expected.size()));
3333
assert(vector<int>(nums.begin(), nums.begin() + expected.size()) == expected);
3434
}
3535

‎src/27-removeElement.cpp‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class Solution {
1111
int removeElement(vector<int>& nums, int val) {
1212
if (nums.empty()) return 0;
1313
int res = -1;
14-
for (int i = 0; i < nums.size(); i++) {
14+
for (int i = 0; i < static_cast<int>(nums.size()); i++) {
1515
if (nums[i] != val) {
1616
nums[++res] = nums[i];
1717
}
@@ -24,17 +24,17 @@ void test() {
2424
Solution s;
2525
vector<int> nums = {3, 2, 2, 3};
2626
vector<int> expected = {2, 2};
27-
assert(s.removeElement(nums, 3) == expected.size());
27+
assert(s.removeElement(nums, 3) == static_cast<int>(expected.size()));
2828
assert(vector<int>(nums.begin(), nums.begin() + expected.size()) == expected);
2929

3030
nums = {0, 1, 2, 2, 3, 0, 4, 2};
3131
expected = {0, 1, 3, 0, 4};
32-
assert(s.removeElement(nums, 2) == expected.size());
32+
assert(s.removeElement(nums, 2) == static_cast<int>(expected.size()));
3333
assert(vector<int>(nums.begin(), nums.begin() + expected.size()) == expected);
3434

3535
nums = {};
3636
expected = {};
37-
assert(s.removeElement(nums, 1) == expected.size());
37+
assert(s.removeElement(nums, 1) == static_cast<int>(expected.size()));
3838
assert(vector<int>(nums.begin(), nums.begin() + expected.size()) == expected);
3939
}
4040

0 commit comments

Comments
 (0)