iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
佛心分享-IT 人自學之術

演算法與資料結構入門:30天基礎學習之旅系列 第 10

Coding Practice:Find the Average Pair In An Array-day10

  • 分享至 

  • xImage
  •  

沒想到這系列已經來到第10天,希望我能堅持到第30天XD
今天一樣來做 Coding Practice

Find the Average Pair In An Array

Here's a quick exercise: Given an sorted array, write a function that returns all pairs whose average value equals the value passed as an argument.

寫一個 function 找出 sorted array 內所有的 pair
pair 要滿足兩元素相加的平均數與傳入的 argument 相等

提示:先用linear search做看看~

先不要偷看答案唷~


Answer:

const arrData = [-11, 0, 1, 2, 3, 9, 14, 17, 21];

function findAveragePair(arr, avgValue) {
    const result = [];
    for (let i = 0; i < arr.length - 1; i++) {
        for (let j = i + 1; j < arr.length; j++) {
            if (arr[i] + arr[j] == avgValue * 2) {
            result.push([arr[i], arr[j]]);
            }
        }
    }
    return result;
}

averagePair(arrData,1.5); // [[-11, 14] , [0, 3] , [1, 2]]

雖然成功找出了所有的 pair,但 BigO 會是 O(n^2)
那..有沒有更聰明的方法呢?...


上一篇
Concept of counter-day9
下一篇
Concept Of Pointer-day11
系列文
演算法與資料結構入門:30天基礎學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言