设为首页收藏本站

爱吱声

 找回密码
 注册
搜索
查看: 2718|回复: 9
打印 上一主题 下一主题

[时事热点] 当ChatGpt走进面试间

[复制链接]
  • TA的每日心情
    奋斗
    2021-4-20 05:43
  • 签到天数: 300 天

    [LV.8]合体

    楼主
    发表于 2023-2-13 08:11:26 | 显示全部楼层
    我把你的题目copy进去,这次ChatGPT明显是审题不周。

    题目:一个数组长度为[3n + 1],包括n+1个数字,其中只有一个数字是单独出现,其他数字都会出现三次,例如[1, 2,  2,1, 1, 2, 3] 。请找出只出现一次的数字。

    方法一:通过哈希表来实现。我们可以遍历数组,用哈希表记录每个数字出现的次数,如果某个数字只出现了一次,那么就找到了答案。

    方法二:使用异或运算。对于每个数字,我们可以使用异或运算将其与之前的数字进行比较,如果最终的结果是非零的,那么就找到了只出现一次的数字。


    用python实现这个程序
    以下是用 Python 实现这个程序的示例代码:

    # 读取数据
    arr = [1, 2,  2,1, 1, 2, 3]

    # 方法一:使用哈希表来实现
    def find_single_with_hash(arr):
        # 初始化一个哈希表
        hash_map = {}
        for ele in arr:
            if ele in hash_map:
                hash_map[ele] += 1
            else:
                hash_map[ele] = 1
        # 遍历哈希表,找出只出现一次的数字
        for k, v in hash_map.items():
            if v == 1:
                return k
        return None

    # 方法二:使用异或运算
    def find_single_with_xor(arr):
        res = 0
        for ele in arr:
            res ^= ele
        return res

    # 测试
    print(find_single_with_hash(arr))
    print(find_single_with_xor(arr))

    回复 支持 反对

    使用道具 举报

    手机版|小黑屋|Archiver|网站错误报告|爱吱声   

    GMT+8, 2024-5-8 01:22 , Processed in 0.031565 second(s), 17 queries , Gzip On.

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表