Funplus笔试 趣加笔试 Funplus秋招 0913

笔试时间:2025年9月13日

往年笔试合集:

2023春招秋招笔试合集

2024春招秋招笔试合集

第一题:扑克牌中的顺子

趣小加非常喜爱玩扑克,现在需要从若干副扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13;而大、小王为0,可以看成任意牌。另外,"A,10,J,Q,K"也是顺子。请你帮助趣小加实现上述功能。

输入描述

数组长度为5,数组的数据值为0~13。

输出描述

返回布尔值,表示是否为顺子。

样例输入

[1, 2, 3, 4, 5]

样例输出

true

参考题解

解题思路:

  1. 去重与记录极值:使用HashSet判断是否存在重复的非大小王(非0)牌,如果存在重复则不是顺子。同时记录非0牌中的最大值和最小值。
  2. 主要逻辑判断:在没有重复牌的情况下,如果max-min的差值小于5,那么这5张牌(包括大小王)一定能构成顺子。
  3. 特殊情况处理:检查A(1),10,J,Q,K这种特殊顺子,如果所有牌都是1或10-13,则也判定为顺子。
  4. 边界情况:如果牌组全是大小王,也视为顺子。

C++:

#include <vector>
#include <unordered_set>
#include <algorithm>
using namespace std;

class Solution {
public:
    bool isStraight(vector<int>& nums) {
        if (nums.size() != 5) {
            return false;
        }
        
        unordered_set<int> uniqueNums;
        int minVal = 14;
        int maxVal = 0;
        
        for (int num : nums) {
            if (num == 0) {
                continue;
            }
            if (uniqueNums.count(num)) {
                return false;
            }
            uniqueNums.insert(num);
            minVal = min(minVal, num);
            maxVal = max(maxVal, num);
        }
        
        if (uniqueNums.empty()) {
            return true;
        }
        
        if (maxVal - minVal < 5) {
            return true;
        }
        
        bool isSpecialCase = true;
        for (int num : uniqueNums) {
            if (num > 1 && num < 10) {
                isSpecialCase = false;
                break;
            }
        }
        
        return isSpecialCase;
    }
};

Java:

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;

public class Solution {
    public boolean isStraight(ArrayList<Integer> nums) {
        if (nums == null || nums.size() != 5) {
            return false;
        }
        
        Set<Integer> uniqueNums = new HashSet<>();
        int min = 14;
        int max = 0;
        
        for (int num : nums) {
            if (num == 0) {
                continue;
            }
            if (uniqueNums.contains(num)) {
                return false;
            }
            uniqueNums.add(num);
            min = Math.min(min, num);
            max = Math.max(max, num);
        }
        
        if (uniqueNums.isEmpty()) {
            return true;
        }
        
        if (max - min < 5) {
            return true;
        }
 

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

2025 春招笔试合集 文章被收录于专栏

2025打怪升级记录,大厂笔试合集 C++, Java, Python等多种语言做法集合指南

全部评论

相关推荐

1.&nbsp;请先做个简单的自我介绍?重点介绍一下自己在游戏经历及对数值策划相关的了解。2.&nbsp;你最近5年的职业规划是什么,能否详细谈一谈你对数值策划岗位成长路径的想法?3.&nbsp;你应聘这个岗位的优势是什么?劣势是什么?请分别从专业知识、游戏经验、能力方面各说三点。4.&nbsp;为什么选择应聘我们星辉游戏公司的数值策划岗位,是基于哪些考虑做出的决定?5.&nbsp;能不能谈谈对我们星辉游戏公司产品和所在游戏行业在数值策划方面的了解?6.&nbsp;你期望的薪酬是多少,结合你自身情况说说该期望薪酬的制定依据是什么?7.&nbsp;大学期间最喜欢哪一门专业课程?为什么喜欢这一门课程以及它对数值策划工作有何帮助?8.&nbsp;用三个词,总结一下这几年自己大学的经历,并且阐述为何选择这三个词来概括?9.&nbsp;大学期间都参加过哪些社团或者学生组织?可否谈一谈在其中承担的角色和收获?10.&nbsp;平时有什么兴趣爱好?有什么特长吗?这些兴趣爱好和特长对数值策划岗位有何助力?11.&nbsp;请阐述你对游戏产品数值策划工作的理解,以及它在整个游戏开发流程中的重要性。12.&nbsp;假设要设计一款新游戏的数值系统,你会从哪些方面入手来确保其乐趣与平衡性?13.&nbsp;在运用常用的数值设计方法与实现工具时,你熟悉哪些工具,能举例说明其应用场景吗?14.&nbsp;谈谈你对有效进行玩法数值模拟和验证的理解,你会采用哪些方式来完成这项工作?
查看14道真题和解析
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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