當前位置:
首頁 >
LeetCode 519. 随机翻转矩阵(哈希)
發布時間:2024/7/5
37
豆豆
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 519. 随机翻转矩阵(哈希)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
題中給出一個 n_rows 行 n_cols 列的二維矩陣,且所有值被初始化為 0。
要求編寫一個 flip 函數,均勻隨機的將矩陣中的 0 變為 1,并返回該值的位置下標 [row_id,col_id];
同樣編寫一個 reset 函數,將所有的值都重新置為 0。
盡量最少調用隨機函數 Math.random(),并且優化時間和空間復雜度。
來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/random-flip-matrix
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
類似題目:LeetCode 398. 隨機數索引(概率)
2.1 超時解
- 矩陣很大的時候,翻得時候效率很低,會碰到翻過的,還要去重新翻
2.2 轉一維,每次縮小范圍
- 記錄總共的元素個數N,隨機獲取 0 ~ N-1 的 pos
- 如果map中有key = pos,則 pos = map[pos],如果沒有,pos就是pos
- 還需要把當前取的位置的 map的 value 更新為最后一個位置的,下一輪,最后那個位置就跳過了
36 ms 18.6 MB
總結
以上是生活随笔為你收集整理的LeetCode 519. 随机翻转矩阵(哈希)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 123. 买卖股票的最
- 下一篇: 奇异值分解(Singular Value