정수를 두 개의 XNUMX이 아닌 정수 Leetcode 솔루션의 합으로 변환


난이도 쉽게
자주 묻는 질문 HRT
수학

정수를 두 개의 XNUMX이 아닌 정수의 합으로 변환 문제 Leetcode Solution은 주어진 정수. 주어진 정수를 두 개의 숫자로 분할해야합니다. 이 두 정수에는 제약이 있습니다. 이 두 정수는 숫자 0을 포함하지 않아야합니다. 더 나은 이해를 위해 몇 가지 예를 살펴 보겠습니다.

정수를 두 개의 XNUMX이 아닌 정수 Leetcode 솔루션의 합으로 변환

n = 2
[1,1]

설명 : 출력의 두 정수는 1과 1입니다. 정수는 동일 할 수 있지만 숫자 0이 없어야합니다. 제한 조건이 출력에서 ​​충족됩니다. 두 정수의 합도 입력 값과 같습니다. 따라서 출력이 정확합니다.

n = 1010
[11, 999]

설명 : 두 정수의 합이 1010과 같기 때문에 출력이 정확합니다. 또한 0과 같은 숫자도 없습니다.

정수를 두 개의 XNUMX이 아닌 정수 Leetcode 솔루션의 합으로 변환하는 방법

문제는 주어진 입력을 두 개의 정수로 분할하도록 요청했습니다. 충족되어야하는 조건은 위의 설명에 이미 명시되어 있습니다. 첫 번째 조건은 정수의 합이 주어진 정수와 같아야한다는 것입니다. 출력으로 반환 될 두 정수는 0 자리를 포함하지 않아야합니다. 문제를 해결하기 위해 1에서 n 사이의 첫 번째 정수에 대해 루프를 실행합니다. 두 번째 정수는 첫 번째 관계에서 추론 할 수 있습니다. 그런 다음 두 정수가 두 번째 조건을 충족하는지 확인합니다.

두 번째 조건을 확인하기 위해 정수를 입력으로받는 사용자 지정 함수를 만듭니다. 주어진 정수에 0이 있는지 여부에 따라 true 또는 false를 반환합니다. 확인을 위해 끝에서 숫자를 하나씩 제거하기 만하면됩니다.

암호

정수를 두 개의 XNUMX이 아닌 정수의 합으로 변환하는 C ++ 코드 Leetcode 솔루션

#include <bits/stdc++.h>
using namespace std;

bool check(int n){
    while(n>0){
        if(n%10 == 0)
            return false;
        n/=10;
    }
    return true;
}

vector<int> getNoZeroIntegers(int n) {
    for(int i=1;i<n;i++){
        if(check(i) && check(n-i))
            return {i, n-i};
    }
    return {-1,-1};
}

int main(){
    int input = 1010;
    vector<int> output = getNoZeroIntegers(input);
    cout<<output[0]<<" "<<output[1];
}
11 999

정수를 두 개의 XNUMX이 아닌 정수의 합으로 변환하는 Java 코드 Leetcode 솔루션

import java.util.*;
import java.lang.*;
import java.io.*;

class Main
{
  private static boolean check(int n){
        while(n>0){
            if(n%10 == 0)return false;
            n/=10;
        }
        return true;
    }
    
    public static int[] getNoZeroIntegers(int n) {
        for(int i=1;i<n;i++){
            if(check(i) && check(n-i))
                return new int[]{i, n-i};
        }
        return new int[]{-1,-1};
    }
    
  public static void main (String[] args) throws java.lang.Exception{
    int input = 1010;
      int[] output = getNoZeroIntegers(input);
      System.out.print(output[0]+" "+output[1]);
  }
}
11 999

복잡성 분석

시간 복잡성

O (NlogN), 여기서 N은 입력으로 제공된 정수입니다. 정수가 10을 포함하는지 여부를 확인하는 함수가 logN 시간에 작동하기 때문에 로그는 밑 수가 0입니다.

공간 복잡성

O (1), 우리는 어떤 정보도 저장하지 않습니다. 그리고 전체 알고리즘은 일정한 수의 변수를 사용합니다. 따라서 공간 복잡성은 일정합니다.