日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 1878. 矩阵中最大的三个菱形和(模拟)

發布時間:2024/7/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 1878. 矩阵中最大的三个菱形和(模拟) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

給你一個 m x n 的整數矩陣 grid 。

菱形和 指的是 grid 中一個正菱形 邊界 上的元素之和。
本題中的菱形必須為正方形旋轉45度,且四個角都在一個格子當中。
下圖是四個可行的菱形,每個菱形和應該包含的格子都用了相應顏色標注在圖中。

注意,菱形可以是一個面積為 0 的區域,如上圖中右下角的紫色菱形所示。

請你按照 降序 返回 grid 中三個最大的 互不相同的菱形和 。
如果不同的和少于三個,則將它們全部返回。

示例 1:

輸入:grid = [[3,4,5,1,3],[3,3,4,2,3],[20,30,200,40,10],[1,5,5,4,1],[4,3,2,2,5]] 輸出:[228,216,211] 解釋:最大的三個菱形和如上圖所示。 - 藍色:20 + 3 + 200 + 5 = 228 - 紅色:200 + 2 + 10 + 4 = 216 - 綠色:5 + 200 + 4 + 2 = 211

示例 2:

輸入:grid = [[1,2,3],[4,5,6],[7,8,9]] 輸出:[20,9,8] 解釋:最大的三個菱形和如上圖所示。 - 藍色:4 + 2 + 6 + 8 = 20 - 紅色:9 (右下角紅色的面積為 0 的菱形) - 綠色:8 (下方中央面積為 0 的菱形) 示例 3: 輸入:grid = [[7,7,7]] 輸出:[7] 解釋:所有三個可能的菱形和都相同,所以返回 [7] 。提示: m == grid.length n == grid[i].length 1 <= m, n <= 100 1 <= grid[i][j] <= 10^5

https://leetcode-cn.com/contest/biweekly-contest-53/problems/get-biggest-three-rhombus-sums-in-a-grid/
https://leetcode-cn.com/problems/get-biggest-three-rhombus-sums-in-a-grid/

2. 解題

  • 不要害怕,就是暴力模擬
class Solution { public:vector<int> getBiggestThree(vector<vector<int>>& g) {int m = g.size(), n = g[0].size();set<int> res;vector<vector<int>> dir ={{1,-1},{1,1},{-1,1},{-1,-1}};for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){ // (i, j) 為中心res.insert(g[i][j]);for(int len = 1; len <= max(m,n); len++){if(i+len>=m || i-len<0 || j+len >= n || j-len < 0)break;int x = i-len, y = j; // 最高點開始int sum = 0;for(int k = 0; k < 4; k++) // 4條邊{int step = len;//每邊走len步while(step--){x += dir[k][0];y += dir[k][1];sum += g[x][y];}}res.insert(sum);}}}vector<int> ans;while(res.size() && ans.size() < 3){ // 取出最大的3個auto it = res.end();it--;ans.push_back(*it);res.erase(it);}return ans;} };

500 ms 56.8 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!

總結

以上是生活随笔為你收集整理的LeetCode 1878. 矩阵中最大的三个菱形和(模拟)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。