华为OD机试 - 结队编程(Java & JS & Python & C & C++)
由于原题目涉及的是特定的机试题目,并且涉及到不同的编程语言,我将给出一个简单的示例来说明如何在不同的编程语言中实现一个简单的功能。
假设我们有一个数组,我们需要找到一个数使得其与其他数的和为0。
Java 示例代码:
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = {-1, 0, 1, 2, -1, -4};
System.out.println(findSumZero(nums));
}
public static int findSumZero(int[] nums) {
for (int i = 0; i < nums.length; i++) {
if (Arrays.asList(nums).contains(0 - nums[i])) {
return nums[i];
}
}
return -1;
}
}
JavaScript 示例代码:
function findSumZero(nums) {
for (let i = 0; i < nums.length; i++) {
if (nums.includes(0 - nums[i])) {
return nums[i];
}
}
return -1;
}
const nums = [-1, 0, 1, 2, -1, -4];
console.log(findSumZero(nums));
Python 示例代码:
def find_sum_zero(nums):
for num in nums:
if 0 - num in nums:
return num
return -1
nums = [-1, 0, 1, 2, -1, -4]
print(find_sum_zero(nums))
C 示例代码:
#include <stdio.h>
int findSumZero(int nums[], int length) {
for (int i = 0; i < length; i++) {
int complement = 0 - nums[i];
for (int j = 0; j < length; j++) {
if (nums[j] == complement) {
return nums[i];
}
}
}
return -1;
}
int main() {
int nums[] = {-1, 0, 1, 2, -1, -4};
int length = sizeof(nums) / sizeof(nums[0]);
printf("%d\n", findSumZero(nums, length));
return 0;
}
C++ 示例代码:
#include <iostream>
#include <vector>
int findSumZero(const std::vector<int>& nums) {
for (int i = 0; i < nums.size(); i++) {
int complement = 0 - nums[i];
if (std::find(nums.begin(), nums.end(), complement) != nums.end()) {
return nums[i];
}
}
return -1;
}
int main() {
std::vector<int> nums = {-1, 0, 1, 2, -1, -4};
std::cout << findSumZero(nums) << std::endl;
return 0;
}
以上代码都是基于同样的假设,即数组中至少有两个数的和为0。在实际的编程挑战中,你需要根据题目的具体要求来调整代码。
评论已关闭