파이썬 대 Golang 대 러스트
테스트 시나리오
Leetcode에서 Two sum problem을 가져왔습니다.
문제 진술:
Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
You can return the answer in any order.
Example 1:
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].Example 2:
Input: nums = [3,2,4], target = 6
Output: [1,2]Example 3:
Input: nums = [3,3], target = 6
Output: [0,1]Constraints:
2 <= nums.length <= 104 -109 <= nums[i] <= 109 -109 <= target <= 109 Only one valid answer exists.
구현
세 가지 언어 모두에서 이 문제를 해결하기 위해 해시 맵을 사용했습니다.
파이썬
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
hash_table = {}
for i, num in enumerate(nums):
target_num = target - num
if num in hash_table:
return i, hash_table[num]
else:
hash_table[target_num] = i
return None
파이썬 통계
골랑
func twoSum(nums []int, target int) []int {
hashMap := make(map[int] int)
for i := 0; i < len(nums); i++{
if _, found := hashMap[nums[i]]; found {
ans := []int{i, hashMap[nums[i]]}
return ans
} else {
hashMap[target- nums[i]]= i
}
}
return nil
}
골랑 통계
녹
use std::collections::HashMap;
impl Solution {
pub fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32> {
let mut hash_table: HashMap<i32, i32> = HashMap::new();
for i in 0..nums.len() {
// println!("Processing number: {}", nums[i]);
match hash_table.get(&nums[i]){
Some(&x) => return vec![x, i as i32],
None => hash_table.insert(target - nums[i], i as i32),
};
};
return vec![-1, -1]
}
}
녹 통계
결론
더 많은 통찰력을 얻으려면 나를 따르십시오.
원본 게시물: Hashnode
Reference
이 문제에 관하여(파이썬 대 Golang 대 러스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/soumendrak/python-vs-golang-vs-rust-fh6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)