Given an integer array
nums
, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once. You can return the answer in any order.Example 1:
Input: nums = {1,2,1,3,2,5}
Output: [3,5]
Approach
Java
import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class SingleNumberIII {public static void main(String[] args) {int nums[] = { 1, 2, 1, 3, 2, 5 };int arr[] = singleNumber(nums);System.out.println(Arrays.toString(arr));}static int[] singleNumber(int[] nums) {List<Integer> list = new ArrayList<Integer>();for (int i = 0; i < nums.length; i++) {if (list.indexOf(nums[i]) != -1) {list.remove(list.indexOf(nums[i]));} elselist.add(nums[i]);}return list.stream().mapToInt(Integer::intValue).toArray();}}
C++
#include <bits/stdc++.h>using namespace std;vector<int> singleNumber(vector<int>& nums){set<int> st;for(int i=0;i<nums.size();i++){if(st.find(nums[i])!=st.end()){st.erase(st.find(nums[i]));}elsest.insert(nums[i]);}vector<int> res;for(auto it=st.begin();it!=st.end();it++)res.push_back(*it);return res;}int main(){vector<int> nums ={1,2,1,3,2,5};vector<int> arr=singleNumber(nums);for(int i=0;i<arr.size();i++)cout<<arr[i]<<" ";return 0;}
No comments:
Post a Comment