給定一個包含 n 個整數的數組 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重復的三元組。


給定一個包含 n 個整數的數組 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重復的三元組。
注意:答案中不可以包含重復的三元組。
例如, 給定數組 nums = [-1, 0, 1, 2, -1, -4],
滿足要求的三元組集合為:
[
  [-1, 0, 1],
  [-1, -1, 2]
]

#include <stdio.h>
void BubbleSort(int a[],int n){
    int i,j,tmp;
    bool flag;
    for(i=1;i<n;i++){
        flag=false;
        for(j=0;j<n-1;j++){
            if(a[j]>a[j+1]){
                tmp=a[j];
                a[j]=a[j+1];
                a[j+1]=tmp;
                flag=true;
            }
        }
        if(!flag){
            break;
        }
    }
}
int main()
{
    int n,i,j,k;
    scanf("%d",&n);
    int nums[n];
    for(i=0;i<n;i++){
        scanf("%d",&nums[i]);
    }
    BubbleSort(nums,n);
    for(i=0;i<n;i++){
        printf("%d ",nums[i]);
    }
    printf("\n");
    for(i=0;i<n;i++){
        if(nums[i]==nums[i-1]){// 該處為關鍵點(去重):判斷當前的數是否與前一個相等.
            continue;// 若相等則說明從該數開始的所有可能性已經輸出,則跳過該數
        }else{
            for(j=i+1;j<n;j++){
                for(k=j+1;k<n;k++){
                    if(nums[i]+nums[j]+nums[k]==0)
                        printf("%d,%d,%d ",nums[i],nums[j],nums[k]);
                }
            }
        }
    }
    return 0;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 Leetcode練習(Python):數組類:第15題:給你一個包含 n 個整數的數組 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?請你找出所有滿足條件且不重復的三元組。 注意:答案中不可以包含重復的三元組。 給你一個包含 n 個整數的數組 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?請你找出所有和為 0 且不重復的三元組 給你一個包含 n 個整數的數組 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?請你找出所有和為 0 且不重復的三元組 找出所有滿足條件a + b + c = 0且不重復的三元組。 面試題-python3 個包含n個整數的數組nums,判斷nums中是否存在三個元素,a,b,c,使得a+b+c=0 刷題3:給定一個數組 nums,判斷 nums 中是否存在三個下標 a,b,c數相加等於targe且a,b,c不相等 python3面試題-一個包含n個整數的數組a,判斷a中是否存在三個元素,a,b,c,使得a+b+c=0 給定一個整數數組 nums 和一個目標值 k,請實現一個方法判斷 nums 中是否存在某個片段(即若干個相連元素)之和等於 k。要求時間復雜度為 O(n)。 最接近的三數之和(給定一個包括 n 個整數的數組 nums 和 一個目標值 target。找出 nums 中的三個整數, 使得它們的和與 target 最接近。返回這三個數的和) 給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的那 兩個 整數,並返回他們的數組下標。 你可以假設每種輸入只會對應一個答案。但是,你不能重復利用這個數組中同樣的元素。 示例: 給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM