Masala sharti:
Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not use the same element twice. You can return the answer in any order. Example 1: Input: nums = [2,7,11,15], target = 9 Output: [0,1] Explanation: Because nums[0] + nums[1] == 9, we return [0, 1]. Example 2: Input: nums = [3,2,4], target = 6 Output: [1,2] Example 3: Input: nums = [3,3], target = 6 Output: [0,1] Constraints: 2 <= nums.length <= 104 -109 <= nums[i] <= 109 -109 <= target <= 109 Only one valid answer exists.
Masalaga e'tibor qiling, bizga sonlar berilgan arrayda, va bizga target son beriladi. Biz array ichidan qoshilganda targetga teng bo'ladigan juftliklarning indexlarini qaytarishimiz kerak.
Uning uchun ikkta fordan foydalandim. daslab birinchi forga array keladi va uning ichida yana bir for ishlatiladi, ammo nima uchun ?
Chunki biz agar ikkta for qilmasak bizda bitta for arrayni faqat ketma-ket ayalnib o'tib ketadi. Misol uchun bizga [1,2,3,4,5,6,7] berilsa av target son 9 bolsa unda 4 va 5 ning indexlarini qaytaramiz. u chunarli chunki ketma-ket kelgan. Lekin bizda agar [1,2,3,4,5,6,7] bolib targetda 11 bo'lsachi yani 4 va 7 ning indexlari ularda for otganida hech qachon ketma ket kelmaydi shuning uchun ikkta for ishaltamiz va har bir arraydgi element uchun har bir sonni moslaymiz.
masalan arraydagi 1 ni birinchi for oladi v ikkinchi forga qaydtan shu array tushadi, 1,2,3,4,5,6,7 lar ni 1 uchun tekshirib chiqamiz.
Yana e'tibor qiladigan joyimiz bor, forda aylanganda array ikkala forga ham tushadi sonni ozi bilan ozi bob qolsachi if shart operatori bilan buni oldini olib qoyamiz yani indexlari teng bolib qolsa otkazib davom ettirib yubor deymiz, nimaga aynan Indexlariga tekshiramiz, sonlar ham bir xil boladiku ?
Yo'q index- unique yani takrorlanmas lekin bir arrayda 5ta 2 bolishi mumkin
Hali izoh yo'q. Birinchi bo'ling!