当前位置: 首页 > news >正文

Day1每日编程题日记:数字统计、两个数组的交集、点击消除

前言:该篇用于记录自看。曾回看昨天的做题代码,竟然会觉得陌生,这竟然是我写的,细细读了一下,原来我当时是这么想的。因此我觉得记代码没有实际用处,重点是领悟了思想,这样子代码就在心中,随时可以再写出来。因此我的笔记不记录代码,只记录一些关键思想突破点。

第一题:数字统计

 

对于数x

x%10得到个位

x/10 得到去掉个位,剩下的数

再综合上递归思想


第二题:两个数组的交集

 第一次解题:

第一次做的时候通过暴力解法套两个循环解出来了

优化:

运用哈希表的知识

复习:哈希表的核心思想是通过将关键字映射到表中一个位置来快速定位记录,以加快查找的速度。具体来说,哈希表利用哈希函数将关键字映射到一个地址,这个地址通常称为哈希地址或哈希值。通过这个地址,可以直接访问到所需的数据,而不需要进行大量的比较操作,从而实现常数时间复杂度的平均查找时间。

解题思想:

那在这道题中,因为nums1、2的范围[1,1000],直接用数组的下标映射

细节1:

boolean[] a = new boolean[1020]; 和 Boolean[] a = new Boolean[1020]的区别:

boolean[] 默认初始化为 false。Boolean[] 默认初始化为 null。

使用 boolean[] 时,考虑存储大量基本布尔值,且希望使用内存更加高效。

使用 Boolean[] 时,需要考虑可能存储 null 值或使用 Boolean 的其他特性。

因此这道题要用boolean,避免空指针异常。

细节2:

if语句里若不小心写成= 赋值,也不会报错。代码跑不过时,可检查这里。


第三题:点击消除 

 

【相邻两个相同的字母】->用栈解决;不用到栈思想的方法基本都会超时;

初始解法:我的代码是用到Stack类直接初始化一个栈;

优化:用StringBuilder模拟一个栈,利用了StringBuilder的可变性,增减元素时,长度也会相应改变。具体实现:append增加字符模拟入栈,deleteCharAt模拟出栈。

 

http://www.lryc.cn/news/398079.html

相关文章:

  • ENSP实现防火墙区域策略与用户管理
  • c#实现23种常见的设计模式--动态更新
  • 昇思25天训练营Day11 - 基于 MindSpore 实现 BERT 对话情绪识别
  • 本地开发微信小程序,使用巴比达内网穿透
  • 【LeetCode】快乐数
  • 大模型未来发展深度分析
  • [线性RNN系列] Mamba: S4史诗级升级
  • 【鸿蒙学习笔记】元服务
  • LIS+找规律,CF 582B - Once Again...
  • 数据赋能(145)——开发:数据拆分——实施过程、应用特点
  • 【漏洞复现】Splunk Enterprise for Windows 任意文件读取漏洞 CVE-2024-36991
  • FastAPI -- 第一弹
  • C++入门基础篇(1)
  • 基于html开发的在线网址导航在线工具箱源码
  • 【密码学】大整数分解问题和离散对数问题
  • 解析 pdfminer layout.py LAParams类及其应用实例
  • Redis官方可视化管理工具
  • android 固定图片大小
  • 操作系统——内存管理(面试准备)
  • vue3实现vuedraggable实现拖拽到垃圾桶图标位置进行删除
  • MySQL向自增列插入0失败问题
  • Python:Python基础知识(注释、命名、数据类型、运算符)
  • Protobuf: 大数据开发中的高效数据传输利器
  • MySQL 面试相关问题
  • java org.aeonbits.owner库介绍
  • YOLOv10改进 | 添加注意力机制篇 | 添加LSKAttention大核注意力机制助力极限涨点
  • 学习笔记——动态路由——IS-IS中间系统到中间系统(特性之路由撤销)
  • 智能无人机控制:STM32微控制器与机器学习集成(内附资料)
  • 力扣 454四数相加
  • Java面试题系列 - 第9天