1. 程式人生 > 資訊 >聯想小新 Air 14 Plus 推新配置:i5-1155G7 + 16:10 2.2K 屏,首發 4399 元

聯想小新 Air 14 Plus 推新配置:i5-1155G7 + 16:10 2.2K 屏,首發 4399 元

給定一個已按照 非遞減順序排列 的整數陣列numbers ,請你從陣列中找出兩個數滿足相加之和等於目標數target 。

函式應該以長度為 2 的整數陣列的形式返回這兩個數的下標值。numbers 的下標 從 1 開始計數 ,所以答案陣列應當滿足 1 <= answer[0] < answer[1] <= numbers.length 。

你可以假設每個輸入 只對應唯一的答案 ,而且你 不可以 重複使用相同的元素。


示例 1:

輸入:numbers = [2,7,11,15], target = 9
輸出:[1,2]
解釋:2 與 7 之和等於目標數 9 。因此 index1 = 1, index2 = 2 。
示例 2:

輸入:numbers = [2,3,4], target = 6
輸出:[1,3]

class Solution {
    public int[] twoSum(int[] numbers, int target) {
        int x=target/2+1,i=0,j=0;
        for(i=0;i<numbers.length;i++){
            if(numbers[i]<x){
                int y=target-numbers[i];
                for(j=i+1;j<numbers.length;j++){
                    
if(numbers[j]==y){ int[] a=new int[]{i+1,j+1}; return a; } } } } return null; } }
class Solution {
    public int[] twoSum(int[] numbers, int target) {
        int low=0;
        int higth=numbers.length-1;
        
while(low<higth){ if(numbers[low]+numbers[higth]>target){ higth--; }else if(numbers[low]+numbers[higth]<target){ low++; }else if(numbers[low]+numbers[higth]==target){ int[] a=new int[]{low+1,higth+1}; return a; } } return null; } }