91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

有這樣一個數組A,大小為n,相鄰元素差的絕對值都是1。

發布時間:2020-07-21 20:35:23 來源:網絡 閱讀:1686 作者:小止1995 欄目:編程語言

有這樣一個數組A,大小為n,相鄰元素差的絕對值都是1。如:A={4,5,6,5,6,7,8,9,10,9}。現在,給定A和目標整數t,請找到t在A中的位置。除了依次遍歷,還有更好的方法么?


思路:數組第一個數為array[0], 要找的數為y,設t = abs(y - array[0])。由于每個相鄰的數字之差的絕對值為1。故第t個位置之前的數肯定都比y小。因此直接定位到array[t],重新計算t,t = abs(y – array[t]),再重復上述步驟即可。這種算法主要利用了當前位置的數與查找數的差來實現跨越式搜索。算法效率要比遍歷數組的算法要高一些,并且易于實現。

int FindNumberInArray(int arr[], int n , int find_number)  
{  
  int next_arrive_index = abs(find_number - arr[0]);  
  while (next_arrive_index < n)  
  {  
    if (arr[next_arrive_index] == find_number)  
      return next_arrive_index;  
    next_arrive_index += abs(find_number - arr[next_arrive_index]);  
  }  
  return -1;  
}

拓展:有一個int型數組,每兩個相鄰的數之間的差值不是1就是-1.現在給定一個數,要求查找這個數在數組中的位置。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西吉县| 南召县| 仪征市| 贵州省| 瓮安县| 石渠县| 通许县| 民和| 靖州| 澄迈县| 浪卡子县| 恭城| 通许县| 札达县| 鄂温| 启东市| 孝感市| 玉林市| 扎兰屯市| 华阴市| 塔城市| 太原市| 绥棱县| 五大连池市| 辽阳市| 侯马市| 土默特右旗| 阳东县| 永定县| 江阴市| 临猗县| 故城县| 隆子县| 茶陵县| 江源县| 张掖市| 垦利县| 花莲县| 阿坝县| 盐城市| 富民县|