NC75数组中只出现一次的数字(哈希法)

NC75数组中只出现一次的数字(哈希法)

- 1、题目描述:
图片说明

- 2、题目链接:
https://www.nowcoder.com/practice/e02fdb54d7524710a7d664d082bb7811?tpId=117&&tqId=34997&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking

-3、 设计思想:
图片说明
详细操作流程看下图:
图片说明

-5、代码:
c++版本:

 class Solution {
public:
    void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
        map<int,int>mp; //定义一个哈希表
        for(int i = 0;i < data.size();i ++){
            mp[data[i]]++; //把data里面元素出现的次数进行统计
        }
        vector<int>res; //定义res方便给*num1,*num2赋值
        for(int i = 0;i < data.size();i ++){
            if(mp[data[i]] == 1){//如果data[i]出现过一次就加入到res里面
                res.push_back(data[i]);
            }
            if(res.size() >= 2) break; //因为题目说了,只有两个元素出现了1次,所以res的大小超过1个就可以不需要遍历data数组了
        }
        *num1 =res[0];
        *num2 = res[1];


    }
};

Java版本:

//num1,num2分别为长度为1的数组。传出参数
//将num1[0],num2[0]设置为返回结果
import java.util.*;
public class Solution 

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

前端岗位面试真题宝典 文章被收录于专栏

本面试宝典均来自校招面试题目大数据进行的整理

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务