1893. 检查是否区域内所有整数都被覆盖
生活随笔
收集整理的這篇文章主要介紹了
1893. 检查是否区域内所有整数都被覆盖
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
theme: healer-readable
給你一個二維整數數組?ranges?和兩個整數?left?和?right?。每個?ranges[i] = [starti, endi]?表示一個從?starti?到?endi?的?閉區間?。
如果閉區間?[left, right]?內每個整數都被?ranges?中?至少一個?區間覆蓋,那么請你返回?true?,否則返回?false?。
已知區間 ranges[i] = [starti, endi] ,如果整數 x 滿足 starti <= x <= endi?,那么我們稱整數x?被覆蓋了。
示例 1:
輸入:ranges = [[1,2],[3,4],[5,6]], left = 2, right = 5
輸出:true
解釋:2 到 5 的每個整數都被覆蓋了:
- 2 被第一個區間覆蓋。
- 3 和 4 被第二個區間覆蓋。
- 5 被第三個區間覆蓋。
示例 2:
輸入:ranges = [[1,10],[10,20]], left = 21, right = 21
輸出:false
解釋:21 沒有被任何一個區間覆蓋。
解題思路
代碼
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;} }總結
以上是生活随笔為你收集整理的1893. 检查是否区域内所有整数都被覆盖的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 1838. 最高频元素
- 下一篇: 1736. 替换隐藏数字得到的最晚时间