1893. 检查是否区域内所有整数都被覆盖
生活随笔
收集整理的這篇文章主要介紹了
1893. 检查是否区域内所有整数都被覆盖
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
theme: healer-readable
給你一個(gè)二維整數(shù)數(shù)組?ranges?和兩個(gè)整數(shù)?left?和?right?。每個(gè)?ranges[i] = [starti, endi]?表示一個(gè)從?starti?到?endi?的?閉區(qū)間?。
如果閉區(qū)間?[left, right]?內(nèi)每個(gè)整數(shù)都被?ranges?中?至少一個(gè)?區(qū)間覆蓋,那么請(qǐng)你返回?true?,否則返回?false?。
已知區(qū)間 ranges[i] = [starti, endi] ,如果整數(shù) x 滿足 starti <= x <= endi?,那么我們稱整數(shù)x?被覆蓋了。
示例 1:
輸入:ranges = [[1,2],[3,4],[5,6]], left = 2, right = 5
輸出:true
解釋:2 到 5 的每個(gè)整數(shù)都被覆蓋了:
- 2 被第一個(gè)區(qū)間覆蓋。
- 3 和 4 被第二個(gè)區(qū)間覆蓋。
- 5 被第三個(gè)區(qū)間覆蓋。
示例 2:
輸入:ranges = [[1,10],[10,20]], left = 21, right = 21
輸出:false
解釋:21 沒有被任何一個(gè)區(qū)間覆蓋。
解題思路
代碼
class Solution {public boolean isCovered(int[][] ranges, int left, int right) {int[] dif = new int[52];for (int[] range : ranges) {dif[range[0]]++;dif[range[1]+1]--;}int cur=0;for (int i=0;i<=51;i++){cur+=dif[i];if(i<=right&&i>=left&&cur<=0)return false;}return true;} }總結(jié)
以上是生活随笔為你收集整理的1893. 检查是否区域内所有整数都被覆盖的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 1838. 最高频元素
- 下一篇: 1736. 替换隐藏数字得到的最晚时间