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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

LeetCode 1868. 两个行程编码数组的积(双指针)

發布時間:2024/7/5 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 1868. 两个行程编码数组的积(双指针) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題
      • 2.1 模擬超時
      • 2.2 優化

1. 題目

行程編碼(Run-length encoding)是一種壓縮算法,能讓一個含有許多段連續重復數字的整數類型數組 nums 以一個(通常更小的)二維數組 encoded 表示。

每個 encoded[i] = [vali, freqi] 表示 nums 中第 i 段重復數字,其中 vali 是該段重復數字,重復了 freqi 次。

例如, nums = [1,1,1,2,2,2,2,2] 可表示稱行程編碼數組 encoded = [[1,3],[2,5]] 。
對此數組的另一種讀法是“三個 1 ,后面有五個 2 ”。
兩個行程編碼數組 encoded1 和 encoded2 的積可以按下列步驟計算:

  • 將 encoded1 和 encoded2 分別擴展成完整數組 nums1 和 nums2 。
  • 創建一個新的數組 prodNums ,長度為 nums1.length 并設 prodNums[i] = nums1[i] * nums2[i] 。
  • 將 prodNums 壓縮成一個行程編碼數組并返回之。

給定兩個行程編碼數組 encoded1 和 encoded2 ,分別表示完整數組 nums1 和 nums2 。
nums1 和 nums2 的長度相同。
每一個 encoded1[i] = [vali, freqi] 表示 nums1 中的第 i 段,每一個 encoded2[j] = [valj, freqj] 表示 nums2 中的第 j 段。

返回 encoded1 和 encoded2 的乘積。

注:行程編碼數組需壓縮成可能的最小長度。

示例 1: 輸入: encoded1 = [[1,3],[2,3]], encoded2 = [[6,3],[3,3]] 輸出: [[6,6]] 解釋n: encoded1 擴展為 [1,1,1,2,2,2] ,encoded2 擴展為 [6,6,6,3,3,3]。 prodNums = [6,6,6,6,6,6],壓縮成行程編碼數組 [[6,6]]。示例 2: 輸入: encoded1 = [[1,3],[2,1],[3,2]], encoded2 = [[2,3],[3,3]] 輸出: [[2,3],[6,1],[9,2]] 解釋: encoded1 擴展為 [1,1,1,2,3,3] ,encoded2 擴展為 [2,2,2,3,3,3]。 prodNums = [2,2,2,6,9,9],壓縮成行程編碼數組 [[2,3],[6,1],[9,2]]。 提示: 1 <= encoded1.length, encoded2.length <= 10^5 encoded1[i].length == 2 encoded2[j].length == 2 對于每一個 encoded1[i]1 <= vali, freqi <= 10^4 對于每一個 encoded2[j]1 <= valj, freqj <= 10^4 encoded1 和 encoded2 表示的完整數組長度相同。

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

2. 解題

2.1 模擬超時

class Solution:def findRLEArray(self, encoded1: List[List[int]], encoded2: List[List[int]]) -> List[List[int]]:n = sum([x[1] for x in encoded1])arr1 = [0]*narr2 = [0]*ni, idx = 0, 0while i < len(encoded1):t = encoded1[i][1]num = encoded1[i][0]while t > 0:arr1[idx] = numidx += 1t -= 1i += 1i, idx = 0, 0while i < len(encoded2):t = encoded2[i][1]num = encoded2[i][0]while t > 0:arr2[idx] = numidx += 1t -= 1i += 1p = [arr1[i]*arr2[i] for i in range(len(arr1))]ans = []ct = 0for i in range(len(p)):if i==0 or (i>0 and p[i] != p[i-1]):if i > 0:ans.append([p[i-1], ct])ct = 1else:ct += 1ans.append([p[-1], ct])return ans

2.2 優化

  • 一邊檢查,取出個數較少的,放入答案,同時檢查跟答案尾部的是否數值一樣,一樣的話進行合并
class Solution:def findRLEArray(self, encoded1: List[List[int]], encoded2: List[List[int]]) -> List[List[int]]:i, j = 0, 0ans = []while i < len(encoded1) and j < len(encoded2):num = encoded1[i][0]*encoded2[j][0]if encoded1[i][1] > encoded2[j][1]:encoded1[i][1] -= encoded2[j][1]ct = encoded2[j][1]j+=1elif encoded1[i][1] < encoded2[j][1]:encoded2[j][1] -= encoded1[i][1]ct = encoded1[i][1]i+=1else:ct = encoded1[i][1]i+=1j+=1if len(ans)>0 and ans[-1][0]==num: # 數值一樣,合并個數ans[-1][1] += ctelse:ans.append([num, ct])return ans

376 ms 62.9 MB Python3


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

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

總結

以上是生活随笔為你收集整理的LeetCode 1868. 两个行程编码数组的积(双指针)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 色老头在线观看 | 成年人在线观看网站 | 久久综合久久久久 | 国产精品网友自拍 | 尤物在线视频观看 | 国产乱码精品一品二品 | 欧美人与动物xxxxx | 超碰在线超碰 | 免费无遮挡在线观看视频网站 | 无码人妻久久一区二区三区蜜桃 | 国产亚韩 | 黄色片网站在线看 | 97成人精品视频在线观看 | 不卡在线一区 | 日本理论片午伦夜理片在线观看 | 久久欧| 美日韩一区二区三区 | 欧美精品99久久 | 狂野欧美性猛交免费视频 | 亚洲国产aaa | 中国毛片视频 | 国产男男网站 | 欧美伦理一区 | 欧美aa级| 国产精品黄色网 | 无套内谢少妇高潮免费 | 日产精品久久久久久久蜜臀 | 91中文字日产乱幕4区 | 久色国产 | 欧美性猛交久久久久 | 国产免费观看视频 | 草草福利视频 | 国产免费激情 | 色在线影院 | 狠狠操女人 | 超碰一区二区 | 久久精品无码一区二区三区免费 | 乱淫av | 欧美风情第一页 | 亚洲不卡视频在线 | 日本在线看 | 日本熟妇一区二区 | 久久久久久国产精品 | 日穴视频| 综合国产精品 | 日本a级在线 | 久久久久不卡 | 国产成人精品无码免费看在线 | 2024国产精品 | 欧美三级图片 | 国产不卡免费视频 | 一起操在线观看 | 国产欧美一区二区三区精品酒店 | 蜜臀av免费一区二区三区水牛 | 亚洲免费色图 | 久久久无码一区二区三区 | 亚洲高清中文字幕 | 黄色大片一级片 | 人善交videos欧美3d动漫 | av色先锋 | 中文字幕在线亚洲 | 天天色天天看 | 三级欧美视频 | 精品一区二区三区四 | 精品一区二区三区四区五区六区 | 亚洲第一av网 | 亚洲欧美bt | 四虎精品在线 | 在线国产一区 | 葵司一区二区 | 黑巨茎大战欧美白妞 | 久久久久国产一区二区三区潘金莲 | 大伊人久久 | 久久五十路| www.尤物| 日韩三级网 | 少妇高潮一区二区三区99小说 | 亚洲精品国产乱伦 | 日韩欧美a级片 | 国产精品九九热 | 99热这里只有精品在线 | 男生裸体视频 | 福利免费视频 | 最新理伦片eeuss影院 | 岛国色图 | 海量av资源 | 国产成人精品一区二区在线观看 | 男人和女人日批视频 | 69精品视频| 亚洲欧美在线观看 | 少妇激情偷人三级 | 日本男人的天堂 | 大尺度叫床戏做爰视频 | 91视频在线免费看 | 性做久久久久久久久 | 无码人妻一区二区三区在线视频 | 欧美日韩精品在线观看视频 | 一区二区三区四区在线免费观看 | av大全在线播放 |