Next_Legend level
获赞
22
粉丝
6
关注
35
看过 TA
9
天津大学
2021
C++
IP属地:天津
不忘初心方得始终,欲戴王冠必承其重!
私信
关注
2020-04-24 09:59
天津大学 C++
剑指offer40: 数组中只出现一次的数字class Solution {public:    void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {        map<int,int> mp;        for(auto n:data)            mp[n]++;        map<int,int>::iterator it;        int flag=1;        for(it=mp.begin();it!=mp.end();it++)        {            if((it->second==1)&&(flag==1))            {                *num1 = it->first;                flag++;            }            else if((it->second==1)&&(flag==2))            {                *num2 = it->first;            }        }    }};
2020-04-24
在牛客打卡15天,今天学习:刷题 2 道/代码提交 2 次
0 点赞 评论 收藏
分享
2020-04-23 09:23
天津大学 C++
剑指offer39 :数组中出现次数超过一半的数字解法一: 使用mapclass Solution {public:    int MoreThanHalfNum_Solution(vector<int> numbers) {        int len = numbers.size();        if(len<2)            return numbers[0];        map<int,int> mp;        for(int i=0;i<len;i++)        {            mp[numbers[i]]++;            if(mp[numbers[i]]>(len/2))                return numbers[i];        }        return 0;    }};解法二:暴力法        int len = numbers.size();        sort(numbers.begin(),numbers.end());        int flag=1;        if(len<2)            return numbers[0];        for(int i =0;i<len-1;i++)        {            if(numbers[i]==numbers[i+1])            {  flag++;                if(flag>(len/2))                {                    return numbers[i];                    break;                }            }            else                flag=1; }        return 0;    }
2020-04-23
在牛客打卡14天,今天学习:刷题 7 道/代码提交 7 次
0 点赞 评论 收藏
分享
2020-04-22 08:38
天津大学 C++
剑指offer:数组中重复的数字class Solution {public:    bool duplicate(int numbers[], int length, int* duplication)     {         // 检查数组边界:空数组/长度小于0         if(numbers == nullptr || length <= 0)             return false;          // 检查数组元素:数组元素不符合题干         for(int i=0; i<length;++i)         {             if(numbers[i]<0 || numbers[i]>length-1)                 return false;         }          /* 找出任意一个重复元素*/         for(int i=0;i<length;i++)         {             while(numbers[i]!=i)             {                 // 查找重复元素                 if(numbers[i] != numbers[numbers[i]])                 {                     int temp = numbers[i];                     numbers[i] = numbers[temp];                     numbers[temp] = temp;                 }                 else                 {                     *duplication = numbers[i];                     return true;                 }              }         }          return false;    }};
2020-04-22
在牛客打卡13天,今天学习:刷题 2 道/代码提交 2 次
0 点赞 评论 收藏
分享
2020-04-19 10:16
天津大学 C++
剑指offer42     Leetcode53  连续子数组的最大和 解法一:暴力法class Solution {public:    int FindGreatestSumOfSubArray(vector<int> array) {        int Size = array.size();        int max = INT_MIN;        for(int i=0;i<Size;i++)        {            int sum=0;            for(int j=i;j<Size;j++)            {                sum+=array[j];                if(sum>max)                    max = sum;            }                                }        return max;        }};解法二:贪心方法class Solution {public:    int FindGreatestSumOfSubArray(vector<int> array) {        int Size = array.size();        int result = INT_MIN;        int sum=0;        for(int i=0;i<Size;i++)        {            sum+=array[i];            result = max(result,sum);            if(sum<0)                sum=0;        }        return result;        }};
2020-04-19
在牛客打卡10天,今天学习:刷题 5 道/代码提交 5 次
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务