1975. Maximum Matrix Sum

更新 發佈閱讀 5 分鐘
https://leetcode.com/problems/maximum-matrix-sum?envType=daily-question&envId=2026-01-05

這一題我願稱之為腦筋急轉彎之騙到我了。

經過了 542 的洗禮後,我看到每個題目都想了想是否可以用 queue 解。這一題我想到了用 queue 的解法,一開始還瞎開心了很久。接著越寫越怪,很多邊界問題我在想要如何解決,看著 print 出來的內容我思考著,想說怎麼會一大坨一直換位置。突然,靈機一動看到範例二猶如醍醐灌頂。阿不就是只要有偶數個複數他們都可以消掉嗎!只要一直換位置就好了。

==

OK 如果有了這個想法,這題說是 easy 中的 easy 也不為過,以下程式碼廢話不多說:

class Solution {
public:

vector<int> DIR = {0, 1, 0, -1, 0};

long long maxMatrixSum(vector<vector<int>>& matrix) {
long long ans = 0;
int min_num = std::numeric_limits<int>::max();
bool neg_count = false;
int n = matrix.size();

for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {

if (matrix[i][j] < 0) {
neg_count = ! neg_count;
ans += matrix[i][j]*(-1);
min_num = min(min_num, matrix[i][j]*(-1));
}
else {
ans += matrix[i][j];
min_num = min(min_num, matrix[i][j]);
}
}
}
if (neg_count) {
ans -= 2 * min_num;
}

return ans;
}
};

Best Solution

因為我的程式碼做法很土炮,附上別人的好看程式碼:

class Solution {
public:
long long maxMatrixSum(vector<vector<int>>& matrix) {
long long totalSum = 0;
int minAbsVal = INT_MAX;
int negativeCount = 0;

for (auto& row : matrix) {
for (int val : row) {
totalSum += abs(val);
if (val < 0) {
negativeCount++;
}
minAbsVal = min(minAbsVal, abs(val));
}
}

// Adjust if the count of negative numbers is odd
if (negativeCount % 2 != 0) {
totalSum -= 2 * minAbsVal;
}

return totalSum;
}
};

可以看到他跟我的差別是用 abs 還有 auto 的遍歷,解掉了一些多餘的 index 計算與乘法計算。

留言
avatar-img
星星在晚上的時候不睡覺
0會員
13內容數
資工系的勞碌人生
2026/01/05
https://leetcode.com/problems/01-matrix?envType=problem-list-v2&envId=rabvlt31 熊熊發現最近我好像特愛暴力法...這題我的解法就是暴力破解,沒什麼含金量,程式碼又臭又長,beat 5%的 runtime and memo
2026/01/05
https://leetcode.com/problems/01-matrix?envType=problem-list-v2&envId=rabvlt31 熊熊發現最近我好像特愛暴力法...這題我的解法就是暴力破解,沒什麼含金量,程式碼又臭又長,beat 5%的 runtime and memo
2026/01/04
https://leetcode.com/problems/four-divisors?envType=daily-question&envId=2026-01-04 找因數並且做相加的題目。找因數是我很害怕的類型,因為我對輾轉相除法之類的真的是永遠背不起來,每次都考過就忘,遇到這題我的知識庫裡就
2026/01/04
https://leetcode.com/problems/four-divisors?envType=daily-question&envId=2026-01-04 找因數並且做相加的題目。找因數是我很害怕的類型,因為我對輾轉相除法之類的真的是永遠背不起來,每次都考過就忘,遇到這題我的知識庫裡就
2026/01/04
https://leetcode.com/problems/number-of-ways-to-paint-n-3-grid?envType=daily-question&envId=2026-01-03 第一個在 leetcode 寫到的 Hard 題目,我覺得這題不算是很難想出解法的類型,他難
2026/01/04
https://leetcode.com/problems/number-of-ways-to-paint-n-3-grid?envType=daily-question&envId=2026-01-03 第一個在 leetcode 寫到的 Hard 題目,我覺得這題不算是很難想出解法的類型,他難
看更多
你可能也想看
Thumbnail
我每週都會為自己設計一趟小旅行,像是給日常的一個深呼吸。準備著簡單的行李,在導航上設定好今天想去的地方,播放一張剛好符合心情的歌單,一場逃離日常的小旅行就此展開。 說走就走的自由很浪漫,但背後的現實是,從加油、路途中補給、到抵達目的地的小花費,每一筆都需要精打細算,才能不讓放鬆變成負擔。好在有玉山
Thumbnail
我每週都會為自己設計一趟小旅行,像是給日常的一個深呼吸。準備著簡單的行李,在導航上設定好今天想去的地方,播放一張剛好符合心情的歌單,一場逃離日常的小旅行就此展開。 說走就走的自由很浪漫,但背後的現實是,從加油、路途中補給、到抵達目的地的小花費,每一筆都需要精打細算,才能不讓放鬆變成負擔。好在有玉山
Thumbnail
本文介紹玉山銀行推出的玉山 Unicard,是一張非常符合「小資族、學生、上班族都好上手」的高回饋信用卡!三種回饋方案自由切換,行動支付、百貨、旅遊、百大指定通路全面涵蓋,新戶最高享 7.5% 回饋。回饋透明、操作簡單,非常推薦學生、小資族與上班族。
Thumbnail
本文介紹玉山銀行推出的玉山 Unicard,是一張非常符合「小資族、學生、上班族都好上手」的高回饋信用卡!三種回饋方案自由切換,行動支付、百貨、旅遊、百大指定通路全面涵蓋,新戶最高享 7.5% 回饋。回饋透明、操作簡單,非常推薦學生、小資族與上班族。
Thumbnail
信用卡如今已是現代人日常消費的必需品。回顧其誕生,竟源於一段用餐忘記帶錢的窘境。本文將帶您瞭解信用卡的故事,並介紹「玉山Unicard」,一張涵蓋百大通路、提供彈性回饋的信用卡,尤其適合追求方便與高回饋的消費者。文章將分享誠品生活、全盈+PAY等實際使用情境,並提供新戶申辦優惠資訊。
Thumbnail
信用卡如今已是現代人日常消費的必需品。回顧其誕生,竟源於一段用餐忘記帶錢的窘境。本文將帶您瞭解信用卡的故事,並介紹「玉山Unicard」,一張涵蓋百大通路、提供彈性回饋的信用卡,尤其適合追求方便與高回饋的消費者。文章將分享誠品生活、全盈+PAY等實際使用情境,並提供新戶申辦優惠資訊。
Thumbnail
玉山銀行新推出的Unicard信用卡你發現了嗎?主打可透過玉山Wallet App,每月自由切換簡單選、任意選及UP選三種方案,讓你依照消費習慣擁有不同的回饋方案。其中我自己很喜歡它百大指定消費中的Line Pay行動支付,能讓我以最簡單的方式獲得最高的回饋!同時文中更分享我實測的眉角,快來看下去!
Thumbnail
玉山銀行新推出的Unicard信用卡你發現了嗎?主打可透過玉山Wallet App,每月自由切換簡單選、任意選及UP選三種方案,讓你依照消費習慣擁有不同的回饋方案。其中我自己很喜歡它百大指定消費中的Line Pay行動支付,能讓我以最簡單的方式獲得最高的回饋!同時文中更分享我實測的眉角,快來看下去!
Thumbnail
題目 : 121. Best Time to Buy and Sell Stock
Thumbnail
題目 : 121. Best Time to Buy and Sell Stock
Thumbnail
題目 : 100. Same Tree
Thumbnail
題目 : 100. Same Tree
Thumbnail
題目 : 83. Remove Duplicates from Sorted List
Thumbnail
題目 : 83. Remove Duplicates from Sorted List
Thumbnail
題目 : 69. Sqrt(x)
Thumbnail
題目 : 69. Sqrt(x)
Thumbnail
題目 : 35. Search Insert Position
Thumbnail
題目 : 35. Search Insert Position
Thumbnail
題目 : 28. Find the Index of the First Occurrence in a String
Thumbnail
題目 : 28. Find the Index of the First Occurrence in a String
Thumbnail
題目:66. Plus One
Thumbnail
題目:66. Plus One
Thumbnail
題目 : 9. Palindrome Number
Thumbnail
題目 : 9. Palindrome Number
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News