고전 문제 형 은 얕 은 것 에서 깊 은 것 으로, 자바 및 Python 에서 이 루어 지 며, 알고리즘 을 포함 합 니 다.

24910 단어 PythonJava알고리즘
고전 문제 형 은 얕 은 것 에서 깊 은 것 으로, 자바 및 Python 에서 이 루어 집 니 다.
위 챗 은 공공 번호 에 관심 을 가지 고 있 습 니 다. 밤 추위 정 보 는 모든 사용자 에 게 더욱 양질 의 기술 도움 과 자원 공급 을 무료 로 제공 하 는 데 힘 쓰 고 있 습 니 다. 지원 에 감 사 드 립 니 다!

1. 두 수의 합
정수 배열 nums 와 목표 값 target 을 지정 합 니 다. 이 배열 에서 목표 값 의 두 정 수 를 찾 아 배열 아래 표 시 를 되 돌려 주 십시오.너 는 모든 입력 이 하나의 답안 에 만 대응 할 것 이 라 고 가정 할 수 있다.그러나 배열 의 같은 요 소 는 두 번 사용 할 수 없다.
예시:
   nums = [2, 7, 11, 15], target = 9

   nums[0] + nums[1] = 2 + 7 = 9
     [0, 1]

게 이 트 웨 이 (Java):
class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            int complement = target - nums[i];
            if (map.containsKey(complement)) {
                return new int[] { map.get(complement), i };
            }
            map.put(nums[i], i);
        }
        throw new IllegalArgumentException("No two sum solution");
    }
}

파 승 (Python):
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        hashmap = {}
        for idx, num in enumerate(nums):
            if target - num in hashmap:
                return [hashmap[target - num],idx]
            else:
                hashmap[num] = idx


2. 정수 반전
32 비트 의 기호 정 수 를 보 여 주 려 면 이 정수 중의 모든 숫자 를 반전 시 켜 야 한다.
  : 123
  : 321
    2:
  : -123
  : -321
   3:
  : 120
  : 21
  :

주의: 우리 의 환경 이 32 비트 의 기호 정수 만 저장 할 수 있다 고 가정 하면 그 수치 범 위 는 [- 231, 231 - 1] 이다.이 가설 에 따 르 면 반전 후 정수 가 넘 치면 0 으로 돌아 갑 니 다.
게 이 트 웨 이 (Java):
class Solution {
    public int reverse(int x) {
        int res = 0;
        while(x!=0) {
            //       
            int tmp = x%10;
            //          32   
            if (res>214748364 || (res==214748364 && tmp>7)) {
                return 0;
            }
            //          32   
            if (res<-214748364 || (res==-214748364 && tmp<-8)) {
                return 0;
            }
            res = res*10 + tmp;
            x /= 10;
        }
        return res;
    }
}

파 승 (Python):
        


3. 답문 수
하나의 정수 가 회 문수 인지 아 닌 지 를 판단 하 다.회 문 수 는 정서 (왼쪽 에서 오른쪽으로) 와 역순 (오른쪽 에서 왼쪽으로) 이 같은 정 수 를 말한다.
  : 121
  : true
   2:
  : -121
  : false
  :      ,   -121 。      ,   121- 。          。
  : 10
  : false
  :      ,   01 。          。

진급: 이 문 제 를 해결 하기 위해 정 수 를 문자열 로 바 꾸 지 않 을 수 있 습 니까?
게 이 트 웨 이 (Java):
class Solution {
    public boolean isPalindrome(int x) {
        if (x < 0 || (x % 10 == 0 && x != 0)) return false;
        int res = 0;
        while (x > res) {
            res = res*10 + x%10;
            x /= 10;
        }
        return x == res || x == res / 10;
    }
}

파 승 (Python):
        


4. 로마 숫자 회전 정수
로마 숫자 는 다음 과 같은 7 가지 문 자 를 포함한다. I, V, X, L, C, D 와 M.
              
I             1
V             5
X             10
L             50
C             100
D             500
M             1000

예 를 들 어 로마 숫자 2 를 II 로 쓰 면 두 개의 병렬 1 이다.12. XII 로 쓰 면 X + II 입 니 다.27. XXVII, 즉 XX + V + II 라 고 쓰 세 요.일반적으로 로마 숫자 중 작은 숫자 는 큰 숫자의 오른쪽 에 있다.그러나 4 를 III 로 쓰 지 않 고 IV 로 쓰 는 특례 도 있다.숫자 1 은 숫자 5 의 왼쪽 에 있 고 표시 하 는 수 는 대수 5 에서 소수 1 로 얻 은 수치 4 와 같다.마찬가지 로 숫자 9 는 IX 를 나타 낸다.이 특수 한 규칙 은 다음 과 같은 여섯 가지 상황 에 만 적용 된다. I 는 V (5) 와 X (10) 의 왼쪽 에 놓 고 4 와 9 를 표시 할 수 있다.X 는 L (50) 과 C (100) 의 왼쪽 에 놓 아 40 과 90 을 표시 할 수 있다.C 는 D (500) 와 M (1000) 의 왼쪽 에 놓 아 400 과 900 을 표시 할 수 있다.로마 숫자 를 정 해서 정수 로 변환 합 니 다.입력 은 1 에서 3999 범위 내 에서 확보 합 니 다.
  : "III"
  : 3
  : "IV"
  : 4
  : "IX"
  : 9
  : "LVIII"
  : 58
  : L = 50, V= 5, III = 3.
  : "MCMXCIV"
  : 1994
  : M = 1000, CM = 900, XC = 90, IV = 4.

게 이 트 웨 이 (Java):
import java.util.*;

class Solution {
    public int romanToInt(String s) {
        int sum = 0;
        int preNum = getValue(s.charAt(0));
        for (int i = 1;i < s.length();i++){
            int num = getValue(s.charAt(i));
            if (preNum < num)
                sum -= preNum;
            else
                sum += preNum;
            preNum = num;
        }
        sum += preNum;
        return sum;
    }

    private int getValue(char ch) {
        switch(ch) {
            case 'I': return 1;
            case 'V': return 5;
            case 'X': return 10;
            case 'L': return 50;
            case 'C': return 100;
            case 'D': return 500;
            case 'M': return 1000;
            default: return 0;
        }
    }
}

파 승 (Python):
        


5. 최 장 공통 접두사
문자열 배열 의 가장 긴 공공 접 두 사 를 찾기 위해 함 수 를 만 듭 니 다.공공 접두사 가 존재 하지 않 으 면 빈 문자열 을 되 돌려 줍 니 다.
  : ["flower","flow","flight"]
  : "fl"
   2:
  : ["dog","racecar","car"]
  : ""
  :          。

설명: 모든 입력 은 소문 자 a - z 만 포함 합 니 다.
게 이 트 웨 이 (Java):
class Solution {
    public String longestCommonPrefix(String[] strs) {
        if (strs.length == 0)
            return "";
        String str = strs[0];
        for (int i=0; i<strs.length; i++){
            int j = 0;
            for (; j<str.length() && j<strs[i].length(); j++)
                if (str.charAt(j) != strs[i].charAt(j))
                    break;
            str = str.substring(0, j);
            if (str.equals(""))
                return str;
        }
        return str;
    }
}

파 승 (Python):
        

  업데이트 중 입 니 다. 오류 가 있 거나 더 좋 은 해석 이 있 으 면 지적 해 주 십시오. 감사합니다.
문제 가 있 으 면 위 챗 공식 번호 인 '밤 추위 정보' 에 주목 하 세 요.
위 챗 은 공공 번호 에 관심 을 가지 고 있 습 니 다. 밤 추위 정 보 는 모든 사용자 에 게 더욱 양질 의 기술 도움 과 자원 공급 을 무료 로 제공 하 는 데 힘 쓰 고 있 습 니 다. 지원 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기