题目:给定一个整数数组nums,数组中唯一元素是那些只出现恰好一次的元素,请返回nums数组中唯一元素的和; 接口:int sumOfUnique(int* pNums, int nSize); 限制:输入保证pNums不为空,且数组长度 0<nSize<=100; 示例:给定数组int nums[ ]={1,2,2,3},sumOfUnique(nums, 4)预期返回值为4
时间: 2024-02-16 21:05:06 浏览: 61
好的,让我来回答你的问题。
题目描述为:给定一个整数数组nums,数组中唯一元素是那些只出现恰好一次的元素,请返回nums数组中唯一元素的和。
可以使用哈希表来统计每个元素出现的次数,然后再遍历一遍数组,将出现次数为1的元素加起来即可。具体实现可以参考以下代码:
```c++
#include <unordered_map>
int sumOfUnique(int* pNums, int nSize) {
std::unordered_map<int, int> count;
int sum = 0;
for (int i = 0; i < nSize; i++) {
count[pNums[i]]++;
}
for (auto it = count.begin(); it != count.end(); it++) {
if (it->second == 1) {
sum += it->first;
}
}
return sum;
}
```
对于输入示例int nums[ ]={1,2,2,3},调用sumOfUnique(nums, 4)应该返回4。
希望我的回答能够解决你的问题!
相关问题
c语言中给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数
答案:
可以使用三次反转的操作完成整个数组的移动,具体操作如下:
1. 先将整个数组反转;
2. 再将前 k 个元素反转;
3. 最后将后面的 n-k 个元素反转。
这样就能得到正确的移动后的数组了。
以下是具体代码实现:
```
void reverse(int nums[], int start, int end) { // 反转数组
while (start < end) {
int temp = nums[start];
nums[start] = nums[end];
nums[end] = temp;
start++;
end--;
}
}
void rotate(int nums[], int numsSize, int k){
k %= numsSize;
reverse(nums, 0, numsSize-1); // 反转整个数组
reverse(nums, 0, k-1); // 反转前 k 个元素
reverse(nums, k, numsSize-1); // 反转后面的 n-k 个元素
}
```
使用时,只需要传入整数数组 nums,数组长度 numsSize,以及要移动的位置 k 即可,即:
```
int nums[] = {1, 2, 3, 4, 5};
int numsSize = 5;
int k = 2;
rotate(nums, numsSize, k);
```
这样就将数组元素向右轮转 k 个位置了。
题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。用java语言实现
可以使用哈希表(HashMap)来解决这个问题。遍历数组,用目标值减去当前元素,如果差值在哈希表中存在,说明找到了这两个数,返回它们的下标即可。如果哈希表中不存在当前元素,则将当前元素和它的下标加入哈希表中。
Java代码如下:
```
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");
}
```
该算法的时间复杂度为 O(n),空间复杂度为 O(n)。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)