LeetCode: 두 수의 합 (간단)

8464 단어 데이터 구조
자기 소결
LeetCode 제목: 두 수의 합 (간단)
제목 설명:
정수 배열 nums 와 목표 값 target 을 지정 합 니 다. 이 배열 에서 목표 값 의 두 정 수 를 찾 아 배열 아래 표 시 를 되 돌려 주 십시오.너 는 모든 입력 이 하나의 답안 에 만 대응 할 것 이 라 고 가정 할 수 있다.그러나 배열 의 같은 요 소 는 두 번 사용 할 수 없다.
예시:
주어진 nums = [2, 7, 11, 15], target = 9 nums [0] + nums [1] = 2 + 7 = 9 때문에 [0, 1] 로 돌아 갑 니 다.
출처: 스냅 백 (LeetCode) 링크:https://leetcode-cn.com/problems/two-sum 저작권 은 인터넷 에 귀속 된다.상업 전 재 는 정부 에 연락 하여 권한 을 부여 해 주 십시오. 비 상업 전 재 는 출처 를 밝 혀 주 십시오.
나의 답:
C 언어 판
/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
    int *a = (int *)malloc(sizeof(int) * 2);
    *returnSize = 0;
    for (int i=0; i<numsSize-1; i++){
        for (int j=i+1; j<numsSize; j++){
            if (nums[i]+nums[j] == target){
            a[0]=i;
            a[1]=j;
            *returnSize = 2;
            return a;
            }
        }
    }
    return a;
}

자바 버 전
class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] re = new int[2];
        for (int i=0; i<nums.length-1; i++){
            for (int j=i+1; j<nums.length; j++){
                if (nums[i]+nums[j] == target){
                re[0] = i;
                re[1] = j;
                return re;
                }
            }
        }
        return re;
    }
}

소결:
1. 현재 이런 문 제 를 해결 하 는 데 가장 멍청 한 순환 대 법 만 사용 할 수 있 습 니 다. 저 는 리 뷰 구역 의 대부분 사람들 이 해시 표를 사용 하 는 것 을 보 았 습 니 다. 그러나 현재 데이터 구 조 는 아직 배우 지 못 했 습 니 다. 배 운 후에 최적화 하 겠 습 니 다.2. 수령: C 언어 포인터 의 개념 과 용법 을 간단하게 복습 하고 malloc 함수 신청 주소 공간 을 간단하게 사용 하 는 것 을 배 웠 습 니 다.자바 메커니즘 은 C 언어 와 달리 new 키 워드 를 사용 하여 바 텀 과정 을 무시 합 니 다.3. 부족: LeetCode 평론 구 를 통 해 자신 이 코드 를 쓰 는 것 이 너무 요리 하 다 는 것 을 깨 닫 고 대량의 연습 과 더 좋 은 알고리즘 을 배 워 서 코드 의 질 을 향상 시 켜 야 한다.
(주: 소 백 하나, 지적 을 환영 합 니 다. 널리 양해 해 주 십시오)

좋은 웹페이지 즐겨찾기