Estimated time: 15 menit Bahasa: Bebas (Go, Node.js, TypeScript, Python, dll β pilih yang paling nyaman)
Bayangkan kita punya sistem reconciliation di payment gateway. Setiap hari kita dapat list transaksi, dan kita perlu cari pasangan transaksi (debit & credit) yang nominalnya kalau dijumlah persis sama dengan target settlement amount.
Diberikan sebuah array integer nums dan sebuah integer target. Return index dari dua angka di dalam array yang kalau dijumlahkan hasilnya sama dengan target.
- Setiap input punya tepat satu solusi.
- Tidak boleh menggunakan elemen yang sama dua kali (index yang sama tidak boleh dipakai dua kali).
- Urutan output bebas.
Contoh 1:
Input: nums = [2, 7, 11, 15], target = 9
Output: [0, 1]
Penjelasan: nums[0] + nums[1] = 2 + 7 = 9
Contoh 2:
Input: nums = [3, 2, 4], target = 6
Output: [1, 2]
Penjelasan: nums[1] + nums[2] = 2 + 4 = 6
Contoh 3:
Input: nums = [3, 3], target = 6
Output: [0, 1]
Pilih sesuai bahasa yang dipakai:
Go:
func twoSum(nums []int, target int) []int {
// your code here
}TypeScript / Node.js:
function twoSum(nums: number[], target: number): number[] {
// your code here
}Python:
def two_sum(nums: list[int], target: int) -> list[int]:
# your code here
passSaat mengerjakan, mohon:
- Think out loud β jelaskan pendekatan sebelum mulai coding.
- Diskusikan trade-off β kalau ada beberapa pendekatan, jelaskan kenapa pilih yang itu.
- Sebutkan complexity β time & space complexity dari solusi akhir.
- Pertimbangkan edge case β apa yang harus di-handle?
Selamat mengerjakan! π