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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

LeetCode 519. 随机翻转矩阵(哈希)

發布時間:2024/7/5 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 519. 随机翻转矩阵(哈希) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 題目

題中給出一個 n_rows 行 n_cols 列的二維矩陣,且所有值被初始化為 0。
要求編寫一個 flip 函數,均勻隨機的將矩陣中的 0 變為 1,并返回該值的位置下標 [row_id,col_id];
同樣編寫一個 reset 函數,將所有的值都重新置為 0。
盡量最少調用隨機函數 Math.random(),并且優化時間和空間復雜度。

注意: 1 <= n_rows, n_cols <= 10000 0 <= row.id < n_rows 并且 0 <= col.id < n_cols 當矩陣中沒有值為 0 時,不可以調用 flip 函數 調用 flip 和 reset 函數的次數加起來不會超過 1000 次示例 1: 輸入: ["Solution","flip","flip","flip","flip"] [[2,3],[],[],[],[]] 輸出: [null,[0,1],[1,2],[1,0],[1,1]]示例 2: 輸入: ["Solution","flip","flip","reset","flip"] [[1,2],[],[],[],[]] 輸出: [null,[0,0],[0,1],null,[0,0]] 輸入語法解釋: 輸入包含兩個列表:被調用的子程序和他們的參數。 Solution 的構造函數有兩個參數,分別為 n_rows 和 n_cols。 flip 和 reset 沒有參數,參數總會以列表形式給出,哪怕該列表為空

來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/random-flip-matrix
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

類似題目:LeetCode 398. 隨機數索引(概率)

2.1 超時解

  • 矩陣很大的時候,翻得時候效率很低,會碰到翻過的,還要去重新翻
class Solution { //超時vector<int> grid;int m, n;int x, y, pos; public:Solution(int n_rows, int n_cols) {grid = vector<int> (n_rows*n_cols, 0);m = n_rows;n = n_cols;}vector<int> flip() {do{pos = rand()%(m*n);}while(grid[pos] == 1);grid[pos] = 1;return {pos/n, pos-pos/n*n};}void reset() {grid = vector<int> (m*n, 0);} };

2.2 轉一維,每次縮小范圍

  • 記錄總共的元素個數N,隨機獲取 0 ~ N-1 的 pos
  • 如果map中有key = pos,則 pos = map[pos],如果沒有,pos就是pos
  • 還需要把當前取的位置的 map的 value 更新為最后一個位置的,下一輪,最后那個位置就跳過了
class Solution {unordered_map<int,int> map;int m, n, num;int x, y, pos, prev; public:Solution(int n_rows, int n_cols) {m = n_rows;n = n_cols;num = m*n;}vector<int> flip() {if(num == 0) return {};pos = rand()%(num);num--;//下一輪,減少一個數if(map.count(pos))//map包含pos的key{prev = pos;//記錄當前pospos = map[pos];//真實的取走的posif(!map.count(num))//把最后一個位置的數換到當前map[prev] = num;else//如果最后一個位置有map值,用其值替換map[prev] = map[num];}else//map不包含pos的key{ //pos就是當前位置,只需把末尾的數替換到當前,同上if(!map.count(num))map[pos] = num;elsemap[pos] = map[num];}x = pos/n;y = pos-x*n;return {x, y};}void reset() {num = m*n;map.clear();} };

36 ms 18.6 MB

總結

以上是生活随笔為你收集整理的LeetCode 519. 随机翻转矩阵(哈希)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日本高清不卡码 | 天天操网 | 五月天激情影院 | 国产精品一级黄色片 | 青青国产在线 | 毛片在线视频观看 | 欧美黄色大片免费观看 | 99久久精品免费视频 | 色av一区| 手机看片中文字幕 | 黄色片网站免费在线观看 | 91九色蝌蚪视频 | 天天色小说 | 一区二区三区不卡视频在线观看 | 色吊妞 | 农村偷人一级超爽毛片 | 国产九九九| 国产一区二区黑人欧美xxxx | 91久久久久久久久久久 | 国产精品精品国产 | 伊人网中文字幕 | bt天堂新版中文在线地址 | 欧美专区亚洲专区 | 老熟妇高潮一区二区三区 | 丰满护士巨好爽好大乳 | 男人天堂资源 | 韩国三级一区 | 小镇姑娘1979版 | 一区二区三区在线免费视频 | 懂色av一区二区 | 超碰操 | 中文字幕美女 | 少妇av一区二区三区无码 | 亚洲无限看 | 少妇裸体性生交 | 新国产视频 | 国产处女 | 高清av免费 | 日韩在线第一区 | www.亚洲天堂 | 双女主黄文 | 国产午夜手机精彩视频 | 99久久国产精 | 宅宅少妇无码 | 91丨九色丨丰满人妖 | 亚洲色图14p | 67194午夜| 青草青青视频 | 中文字幕一区2区3区 | 欧美日韩高清丝袜 | 日本免费一区二区视频 | 少妇精品 | 亚洲精品成a人在线观看 | 国产91清纯白嫩初高中在线观看 | 日韩伊人| 爱草视频| 色播综合网 | 国产丰满麻豆 | 亚洲图片欧美日韩 | 九色蝌蚪视频 | 国产传媒第一页 | 长河落日电视连续剧免费观看 | 男插女动态图 | 欧美日韩综合精品 | 特黄特色大片免费视频大全 | 国产嫩草av | 丰满少妇一区二区 | 亚洲操图 | 亚洲av无码一区二区三区网站 | 久久久久成人精品无码中文字幕 | 亚洲国产综合一区 | 亚洲色图制服诱惑 | 日韩黄色录像 | www.-级毛片线天内射视视 | 麻豆传谋在线观看免费mv | 美女狠狠干 | 亚洲风情第一页 | 欧美黄色视屏 | 日韩一级影视 | 久久99成人 | 一本大道伊人av久久综合 | 日韩一级欧美一级 | 黄页视频在线免费观看 | 蜜桃精品成人影片 | 成人手机在线观看 | 美女脱裤子让男人捅 | 国产精品水嫩水嫩 | 欧美性大交 | 国产内射一区 | 日本热久久 | 色鬼综合 | 大学生三级中国dvd 日韩欧美一区二区区 | 国产精品熟女久久久久久 | 欧美视频性 | 激情欧美网站 | 老湿影院av | 涩涩涩在线观看 | 黄色片在线免费观看 | 国产精品久久精品三级 |