<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [每日算法 - 華為機試] LeetCode 475. 供暖器

      入口

      力扣https://leetcode.cn/problems/heaters/submissions/

      題目描述

      冬季已經來臨。 你的任務是設計一個有固定加熱半徑的供暖器向所有房屋供暖。

      在加熱器的加熱半徑范圍內的每個房屋都可以獲得供暖。

      現在,給出位于一條水平線上的房屋 houses 和供暖器 heaters 的位置,請你找出并返回可以覆蓋所有房屋的最小加熱半徑。

      說明:所有供暖器都遵循你的半徑標準,加熱的半徑也一樣。

       

      示例 1:

              輸入: houses = [1,2,3], heaters = [2]
              輸出: 1
              解釋: 僅在位置2上有一個供暖器。如果我們將加熱半徑設為1,那么所有房屋就都能得到供暖。
      示例 2:

              輸入: houses = [1,2,3,4], heaters = [1,4]
              輸出: 1
              解釋: 在位置1, 4上有兩個供暖器。我們需要將加熱半徑設為1,這樣所有房屋就都能得到供暖。
      示例 3:

              輸入:houses = [1,5], heaters = [2]
              輸出:3

      提示:

              1 <= houses.length, heaters.length <= 3 * 104
              1 <= houses[i], heaters[i] <= 109

       方法一:排序、二分查找

      解題思路

      對一每一個房間,要么利用左邊的取暖器,要么利用右邊的取暖器,利用二分查找的方式查詢出距離房間最近的左右兩邊的取暖器,取兩者的最小值即當前房間取暖所需取暖器最小半徑,最后取所有的房間所需最小半徑的最大值即可!

      特殊情況:

      • 房間左邊沒有取暖器
      • 房間右邊沒有取暖器
      • 取暖器在所有房間的另一側

      Java示例

      class Solution {
          public int findRadius(int[] houses, int[] heaters) {
                  int distance = 0;
                  Arrays.sort(heaters);
                  for(int house: houses){
                      int left = binarySearch(heaters,house);
                      int right = left +1 ;//考慮left = length-1的情況
                       //如果左邊沒有取暖器,那么比較的時候取左邊取暖器的距離的值!
                      int leftDestance = left<0?Integer.MAX_VALUE : house - heaters[left];
                      //如果右邊沒有取暖器,那么比較的時候取左邊取暖器的距離的值
                      int rightDestance =right>=heaters.length?Integer.MAX_VALUE : heaters[right] - house;
                      int min = Math.min(leftDestance,rightDestance);
                      distance = Math.max(distance,min);
                  }
                  return distance ;
          }
          //查找距離target hourse最近的供暖器
          public int  binarySearch(int[] nums,int target){
              int left = 0,right = nums.length-1;
              //第一個取暖器就在房間右邊
              if(nums[left]>target){
                  return -1;
              }
              while(left < right){
                  int mid = (right - left + 1)/2 +left;
                  if(nums[mid] > target){
                      right--;
                  }else{
                      left = mid;
                  }
              }
              return left;
          }
      }

      時間復雜度:O((m+n)logn),  數組排序nlogn,二分查找mlogn。

      空間復雜度:O(logn),取決于排序所需空間。

      方法二 雙指針

      ...

      posted @ 2023-07-06 15:06  yihuiComeOn  閱讀(16)  評論(0)    收藏  舉報  來源
      主站蜘蛛池模板: 民乐县| 韩国午夜理伦三级| 99精品国产丝袜在线拍国语| 国产精品人成视频免费国产| 国产亚洲精品成人aa片新蒲金| 人人妻人人澡人人爽人人精品av | 少妇内射高潮福利炮| 亚洲熟妇精品一区二区| 五月天国产成人av免费观看| 视频一区视频二区视频三| 国产蜜臀一区二区三区四区| 亚洲一区精品伊人久久| 美女黄网站人色视频免费国产| 精品国产一区二区在线视| 热久在线免费观看视频| 亚洲日本中文字幕天天更新| 色偷偷亚洲精品一区二区| 国产午夜在线观看视频播放| 亚洲一区二区三区丝袜| 素人视频亚洲十一十二区| 欧美黑人粗暴多交高潮水最多| 精品一区二区三区四区色| 男女激情一区二区三区| 蜜桃视频网站| 疯狂添女人下部视频免费| 精品无码久久久久久尤物| 成人无号精品一区二区三区| 亚洲精品视频一二三四区| 日韩AV无码精品一二三区| 色欲综合久久中文字幕网| 欧美成人精品| 亚洲午夜性猛春交XXXX | 国产95在线 | 欧美| 欧美成人影院亚洲综合图| 国产午夜福利一区二区三区| 国产精品天天狠天天看| 国产一区二区三区自拍视频| 国产普通话对白刺激| 99久久国产成人免费网站| 中文字幕结果国产精品| 成全影视大全在线观看|