funplus笔试

扑克牌为什么没过,有大佬邦看看吗

bool isStraight(vector<int>& nums) {
        int n = nums.size();
        int zero = 0;

        int dis = 0;
        sort(nums.begin(), nums.end());
        int i;
        for (i = 0; i < n; i++) {
            if (nums[i] == 0)
                zero++;
            else break;
        }
        int not_zero_pos = i;
        for (int j = not_zero_pos; j < n - 1; j++) {
            if (nums[j + 1] == nums[j])//有相同的必然不行
                return false;
        }
        for (int j = not_zero_pos; j < n - 1; j++) {
            if (nums[j] == 1 &&
                    nums[j] >=
                    10)//特判:10~1这种情况,已升序,1之后最小要跟10,才能凑成
                return true;
        }
        for (i=not_zero_pos+1; i < n; i++) {
            dis = nums[i] - nums[i - 1] - 1;//差距
        }
        cout << dis;
        if (dis > zero)
            return false;
        return true;

    }

#秋招#
全部评论
我是看是否存在1以及最大的数是否大于9,满足就把1变成14这样去做的
1 回复 分享
发布于 2023-09-15 20:52 山西
没看你代码,你先看看这个案例能不能过01236,还有这个1 0 0 12 13
点赞 回复 分享
发布于 2023-09-15 20:34 重庆
for (int j = not_zero_pos; j < n - 1; j++) { if (nums[j] == 1 && nums[j] >= 10)//特判:10~1这种情况,已升序,1之后最小要跟10,才能凑成 return true; } 这里代码有问题吧?
点赞 回复 分享
发布于 2023-09-15 20:34 广东
这个题我只过了百分之80几,最后几十秒发现问题来不及写代码了😅
点赞 回复 分享
发布于 2023-09-15 20:50 浙江
为啥有算法题目啊?我的笔试感觉做了个寂寞,全是选择题,加翻译一段英文,加如何优化游戏引擎,这笔试感觉要给我挂
点赞 回复 分享
发布于 2023-09-15 22:09 上海
或者试试把joker的数量的情况枚举出来,最后再处理有A的情况,我这样做AC了
点赞 回复 分享
发布于 2023-09-15 22:18 广东
接后续,刚刚感谢信了😓,明明只有这没全过,服了
点赞 回复 分享
发布于 2023-09-20 20:49 陕西

相关推荐

评论
1
1
分享
牛客网
牛客企业服务