球友的一个帖子,半夜三点给我整睡不着了……

news2024/12/23 17:13:22

文章目录

    • 一、起因
    • 二、建议
      • 1、括号和缩进
      • 2、仔细审题
      • 3、独立思考
      • 4、早起的好办法
      • 5、chatgpt会代替人类吗?
    • 三、解决
      • 1、数据结构
      • 2、初始化
      • 3、判定

一、起因

  事情的起因源自于星球里面一位球友的帖子,本来三点醒来上完厕所打算继续睡,突然手机响了,看了下是星球里一位球友发的消息,大概是这么一条消息:“这代码为啥不对啊,问了chatgpt他也不知道”。

二、建议

  看了这个代码,我首先有几点想法:

1、括号和缩进

  首先,这个代码缩进和括号看得很累,这样提问的时候别人看不下去,包括自己查错的时候也会看着很累,所以我们写代码的时候尽量还是要清晰,不然自己排查错误的时候也会下意识的想去求助别人。

2、仔细审题

  这道题我一开始也看错了,还以为是 最后连续k个整数的和要等于 value 则返回 true(本意其实是最后k个整数,每个整数都要等于 value 才会返回 true)。

3、独立思考

  对于这个问题,数据样例都没有过,那就应该自己好好调试,独立思考,尽量还是先自己思考,因为我看到发帖的时间是半夜1点,晚上的思路是最混乱的,最好还是先美美的睡一觉,然后早上起来再看,肯定会清晰很多。
  还有就是,这并不是一个难题,这样的简单题最好还是自己调试解决,不然后面遇到难题就会产生依赖心理。

4、早起的好办法

  每天早上起床前看看星球,看到球友的问题,加入一些自己的思考,在思考的过程中,就醒了,然后就想着赶紧把这件事情记录下来,这样就养成了早起的好习惯,妙啊!

5、chatgpt会代替人类吗?

  最近太多的圈外人在纠结这个问题,我觉得完全没必要纠结,问了chatGpt会做吗?它也不中用啊。而事实上,你需要不断去引导它,有了足够的引导,我相信他还是会的,前提就是引导的人本身是要会的,所以你还担心 ChatGpt 会代替人类吗?它只是一个工具,能够用好这个工具的不还是程序员嘛!

三、解决

  最后说说这个题。
  给定一个整数数据流,要求实现一个数据结构,检查最后 k 个整数是否都等于给定的值 value;
在这里插入图片描述
  对于这个问题,是一个经典的队列问题,可以用一个滑动窗口来解决,首先从数据结构角度去思考问题。

1、数据结构

class DataStream {
    int count;                 // 累计多少个数
    int samecount;             // 累计有多少个数的等于value
    int val;                   // 缓存构造函数的传参 val
    int K;                     // 缓存构造函数的传参 k
    queue< int > q;
}

  count 代表当前滑动窗口的长度;samecount 代表滑动窗口中元素值为 value 的数的个数; val 和 K 用于缓存传参 value 和 k。

2、初始化

  构造函数这么写就好了,四个语句比较简单。

    DataStream(int value, int k) {             
        count = 0;
        samecount = 0;
        val = value;
        K = k;         
    }

3、判定

  判定过程分为三步:
   (1)将数字塞入队列尾部,如果值等于 value 则选择给 samecount 进行自增;
   (2)判断目前滑动窗口是否小于K,如果是则直接返回;否则 samecount 和 count 相等代表:所有的值都是 value,将返回值设置为 true;这时候还不能返回,所以先缓存在 ret 中;
   (3)将滑动窗口的长度始终保持在 K-1 ,这样下一个数据接收进来以后,才能让窗口的值始终保持为 K;将队首的元素弹出的同时,更新 samecount 的值;

    bool consec(int num) {
        bool ret = false;
        
        // 1. 将数字加入队列尾部
        {
            q.push(num);                     
            ++count;                         
            samecount += (val == num) ? 1:0;
        }
        // 2. 实际判定过程
        {
            if(count < K) {
                return false;                // 小于必然返回false
            }
            if(samecount == count) {
                ret = true;
            }
        }
        // 3. 将数字从队列头部剔除
        {
            num = q.front();
            samecount -= (val == num) ? 1:0;
            --count;
            q.pop();
        }

        return ret;
    }

  更新知识星球相关内容,可以参考:英雄算法联盟 进行了解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/440138.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无人机应急救援有保障吗?如何实现救援?

无人机应急救援有保障吗?如何实现救援?中国自然灾害种类较多&#xff0c;分布地域广&#xff0c;发生频率较高。当遭遇洪水、火灾、洪水、地震、暴雪等灾害事故时&#xff0c;常规的信息通信基础设施受到损伤&#xff0c;导致信号中断。如果灾害事故地点相对偏僻&#xff0c;…

淄博旅游“一夜爆火”,五一流量大盘已经开启

全民调休换来的五一小长假即将来临&#xff0c;经过几年“禁锢”后&#xff0c;这两年的旅游业开始回暖。 而今年国内旅游黑马竟指向了新人淄博。 山东淄博烧烤一直以来都“小有名气”&#xff0c;但是这只在周边城市&#xff0c;或者部分人群里传播&#xff0c;而在今年&…

来使用分支语句和循环语句实现一个小游戏吧(猜数字游戏)

猜数字游戏 1.代码展示2.菜单设计3.主函数部分3.随机数设计 1.代码展示 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <time.h>void menu() {printf("************************\n");printf("*** 1.p…

移动端导航设计

根据产品层级的深度和广度&#xff0c;选择适合的导航模式&#xff0c;是产品设计中的关键一环。 任何APP的组织信息都需要以某种导航框架固定起来&#xff0c;一个新的产品合适的导航框架&#xff0c;决定了产品之后的延伸和扩展。 移动端的屏幕尺寸就这么大&#xff0c;操作方…

java定位系统源码,通过独特的射频处理,配合先进的位置算法,可以有效计算出复杂环境下的人员与物品的活动信息

智慧工厂人员定位系统源码&#xff0c;区域电子围栏管控源码 文末获取联系&#xff01; 在工厂日常生产活动中&#xff0c;企业很难精准地掌握访客和承包商等各类人员的实际位置&#xff0c;且无法实时监控巡检人员的巡检路线&#xff0c;当厂区发生灾情或其他异常状况时&#…

Layer组件多个iframe弹出层打开与关闭及参数传递

Layer官网地址&#xff1a;http://layer.layui.com/ 1、多个iframe弹出层&#xff08;非嵌套&#xff09; 1.打开iframe弹出层js代码 &#xff08;1&#xff09;示例一&#xff1a; content参数可传入要打开的页面&#xff0c;type参数传2&#xff0c;即可打开iframe类型的弹层…

STM32入门指南:了解STM32

1. 初识 STM32 STM32&#xff0c;从字面上来理解&#xff0c;ST 是意法半导体&#xff0c;M 是 Microelectronics 的缩写&#xff0c;32 表示 32 位&#xff0c;合起来理解&#xff0c;STM32 就是指 ST 公司开发的 32 位微控制器。在如今的 32 位控制器当中&#xff0c;STM32 …

GitHub新建仓库 上传文档

Author:龙箬 Computer Application Technology Change the World with Data and Artificial Intelligence ! CSDNweixin_43975035 振&#xff0c;而飞破虚空 点击New repository 自定义仓库名称&#xff0c;并勾选 “Add a README file” 选项 复制Code链接 打开终端Git git cl…

夏驰和徐策带你从零开始学数据结构——哈希表

哈希表的概念&#xff1a; 哈希表是一种常用的数据结构&#xff0c;它可以在 O(1) 的时间复杂度内执行插入、查找和删除操作。哈希表的核心思想是使用哈希函数将键值对映射到数组中的一个位置上&#xff0c;从而实现快速的访问和修改。 哈希表由两个主要部分组成&#xff1a;…

Android开发—入门Kotlin编程语言

一、Kotlin简介 为什么Kotlin能代替Java此为Android官方第一支持的开发语言&#xff1f; 1&#xff09;Kotlin的语法更加简洁&#xff0c;对于同样的功能&#xff0c;使用Ktolin开发的代码量可能会比使用Java开发减少50%甚至更多&#xff1b; 2&#xff09;Kotlin语法更加高…

【Linux】文件IO---应用开发角度

目录简述 目录 前言&#xff1a; 一、Linux的文件 二、Linux文件系统目录结构 三、文件访问的方式 &#xff08;1&#xff09;通用方式&#xff1a;open/read/write/lseek/close 示例&#xff1a; &#xff08;2&#xff09;非通用函数&#xff1a;ioctl/mmap 示例&am…

使用ChatGPT+MindShow一键生成PPT,以后再也不用担心制作PPT啦

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…

深度学习及使用全连接神经网络实现手写数字识别案例开发

1.什么是深度学习和机器学习有什么区别&#xff1f;是什么原因使得部分问题机器学习无法解决需要深入研究深度学习&#xff1f; 人工智能、机器学习、深度学习的区别是什么&#xff1f;_哔哩哔哩_bilibili 深度学习是一种机器学习方法&#xff0c;它通过构建多层神经网络来实…

tmall.product.template.get( 产品接口 )

&#xffe5;免费必须用户授权 产品模板获取接口&#xff0c;对于非关键属性的类目&#xff0c;发布达尔文(监管)产品时&#xff0c;必须先根据类目获取产品模板。 产品模板定义产品发布需要的类目属性&#xff0c;包括&#xff1a; 关键属性:关键属性可以在类目上不存在。不…

spring的应用 xml配置实现定时任务

定时任务的实现&#xff1a; 通过xml实现&#xff1a; 创建qiuckstart的maven文件 把依赖配置改改 jdk1.8 以及12 再删掉一些不必要的配置 引入spring依赖坐标 和java同一个目录下创建resources 作为 资源根 结构如图&#xff1a; spring.xml配置&#xff1a; 从官网复制…

《JavaEE》网络中的基本概念

&#x1f451;作者主页&#xff1a;Java冰激凌 &#x1f4d6;专栏链接&#xff1a;JavaEE 局域网/广域网 在我们的生活中 经常会使用到网络 对于网络 我们现在已经变得与生活息息相关 甚至可以说为密不可分 而在我们的网络中 我们的网络是分为局域网与广域网 我们的局域网和广域…

【8086汇编】环境搭建 - 学习笔记:WIN10下安装配置 MASMPlus + DOSBox

【8086汇编】环境搭建 - 学习笔记&#xff1a;WIN10下安装配置 MASMPlus DOSBox 一、MASMPlus 1.2下载安装 二、DOSBox 0.74-3下载安装配置自动挂载C盘添加环境变量 三、masm v5.0四、ml.exe v6.11参考资料 一、MASMPlus 1.2 下载 脚本之家&#xff1a;MASMPlus(汇编开发环境…

【深度学习】第六阶段

1、超参数调试 在深度学习中&#xff0c;有各种各样的超参数&#xff0c;其中包括&#xff1a;学习率 α \alpha α、动量超参数 β \beta β、Adam中的超参数 β 1 \beta_1 β1​、 β 2 \beta_2 β2​和 ε \varepsilon ε、神经网络层数、每层的结点数量、 小样本数据集大小…

mlq color transfer: Color Transfer Using Probabilistic Moving Least Squares

文章目录 Color Transfer Using Probabilistic Moving Least Squares1. 颜色转换2. 如何计算匹配点的概率3. 核心思想和具体操作&#xff1a;4. 特征点覆盖不到的颜色4.1这里介绍一下引文7&#xff1a;4.2. 分析 5. Probabilistic Moving Least Squares with Spatial Constrain…

智能学习 | MATLAB实现ANT-BP多变量时间序列预测(蚁群算法优化BP神经网络)

智能学习 | MATLAB实现ANT-BP多变量时间序列预测(蚁群算法优化BP神经网络) 目录 智能学习 | MATLAB实现ANT-BP多变量时间序列预测(蚁群算法优化BP神经网络)预测效果基本介绍程序设计参考资料预测效果 基本介绍 MATLAB实现ANT-BP多变量时间序列预测(蚁群算法优化BP神经网络…