首页 > 其他分享 >Day12 本周心得体会

Day12 本周心得体会

时间:2024-07-28 11:54:11浏览次数:17  
标签:元素 题目 心得体会 队列 py 哈希 本周 Day12 字符串

目录

概述

本周学习了哈希表,字符串以及栈和队列。相对于上周难度有所提升,下面对每个章节进行描述。

哈希表

上周的数组和链表,大多数题目是模拟和对于解决问题的算法的直接思考。对于哈希表,考察的往往是何时利用该结构进行问题的解决,即应用问题。

  • 对于字典,一般是在需要统计数量(频率)时使用。py中一般用defaultdict方便刚开始加入时的处理,defaultdict和py内置的字典统计数量时区别如下。
dic = defaultdict(int)
for elem in lst:
  dic[elem]+=1

dic2 = {}
for elem in lst:
  if c not in dic2:
    dic2[c] = 1
  else:
    dic2[c]+=1
  • 对于集合,一般是在快速判断元素是否在集合中时使用。

重要题目及思路

本章中的202.快乐数中,加强了对一个数字每一位数的处理的方式.

while n:
  lowdigit = n % 10 # 取出个位
  # 这里处理lowdight
  n //=10 #得到去除个位后的数

对于两数之和,三数之和,四数之和的思考。

  • 两数之和是确定之前有无与当前位置匹配的值,可利用哈希表(字典)来加快搜索。
  • 三数之和,四数之和是双指针法和去重逻辑的使用,未用到哈希表。
  • 四数之和是统计前两个数组之和和后两个数组之和的出现次数,所以可以使用字典。

字符串

字符串的题目也比较难,实际也是类似对数组中元素的处理,主要是py中可以用切片来处理很多复杂的逻辑,以及py中的相关的概念。

重要题目及思路

  • 反转字符串第一个想到的方法是双指针法,此外针对py,还可以用切片直接反转
lst[start:end] = lst[start:end][::-1]
  • 反转字符串II 学到的方法是每次的起点是2k 所以可以利用循环步数。此外还有切片的妙用。
  • 反转字符串中的单词学习到了的思路是可以先反转整体,再反转每个单词。对于py,可以转为列表后,直接反转列表,然后添加空格转为字符串。
  • 关于语言的细节如切片,可变对象,浅拷贝等请看Day8 字符串part1
  • KMP很久以前看过,只记得个next数组,暂时还没看,后续有时间补吧

栈和队列

关于栈和队列,主要就是应用问题。

重要题目及思路

  • 用栈实现队列关键在于模拟,出队方法的实现是关键,注意条件,队列为空时返回None,out栈为空时的逻辑,是将in栈中的元素放入到out栈中,然后弹出,out栈非空的逻辑是直接弹出。
  • 用队列实现栈实际只用一个队列即可,出栈的方法是遍历队列并出队直到最后一个元素。

上面两道题只是提供了一种思考方式,来应对面试,实际应用中作用不大。

  • 有效的括号,删除字符串中的所有相邻重复项以及逆波兰表达式求值 均为栈的应用,即消除相邻元素。
  • 滑动窗口最大值 提供了一种双端队列实现自定义滑动窗口维持队首最大值的方式
  • 前 K 个高频元素 topK问题,是堆(优先级队列)的典型应用,小顶堆中添加k个元素,新来元素加入时,自动调整堆结构,将堆顶最小元素弹出。保证入堆过程中,堆中的元素一直是最大的k个。又由于是统计频率,也使用了字典处理。(这里只学习了堆的应用,关于其实现之前看过,插入删除建堆等,暂不复习)。注意py中的堆heapq的使用。

标签:元素,题目,心得体会,队列,py,哈希,本周,Day12,字符串
From: https://www.cnblogs.com/haohaoscnblogs/p/18328035

相关文章

  • mysql查询今天、昨天、本周、本月、上一月 、今年数据
    原文链接:https://www.cnblogs.com/cnsdhzzl/p/12724580.html--今天select*from表名whereto_days(时间字段名)=to_days(now());--昨天SELECT*FROM表名WHERETO_DAYS(NOW())-TO_DAYS(时间字段名)<=1--本周SELECT*FROM表名WHEREYEARWEEK(date_format......
  • 2024.7.23 Linux——DNS服务搭建(day12)
    (一)搭建nginx1.首先布置基本环境要求能够ping通外网,有yum源2.安装nginxyum-yinstallnginx然后查看验证 3.修改网页配置文件修改文件,任意编写内容,然后去物理机测试(二)创建一台客户端1.模拟一下客户,用母机克隆一台作为我们的客户端然后只需修改地址,保证能够ping......
  • 查询本周、本月、本年、的开始日期和结束日期
    一、查询本周、本月、本年、的开始日期和结束日期(数据统计时有时候会用到)publicstaticvoidmain(String[]args){LocalDatenow=LocalDate.now();LocalDatestartOfWeek=now.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));......
  • 本周当之无愧:小模型周
    --->更多内容,请移步“鲁班秘笈”!!<---在继MetaMobileLLM之后,本周迎来了小模型的挤堆发布。在本地设备上运行的小型语言模型脱胎于蒸馏或量化等技术来压缩大型模型,或者在大型数据集上从头开始训练。Microsoft的Phi系列、阿里巴巴的Qwen2和Meta的MobileLLM表明,如果经过深思熟......
  • Day5 本周总结
    目录数组链表总结数组关于数组,本身结构上比较简单,所以题型上要思考的较多,思想上大多为减治策略,模拟等减而治之的思想,即将一个未知区间的数组亦步亦趋的转化为某些区间已知,某些区间未知的中间状态,最终转化为全部区间已知。(如二分查找的两种不同返回值情况)。技巧上,特定题型比如......
  • AI跟踪报道第48期-新加坡内哥谈技术-本周AI新闻:Open AI 和 Mistral的小型模型
       每周跟踪AI热点新闻动向和震撼发展想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行!订阅:https:......
  • 蓝桥杯单片学习总结(Day12 串口通讯实验)
    实验现象:        通过串口调试助手发送数字1~8,板子上面的对应指示灯亮。注意此处发送应选择文本模式发送。 实例代码:#include<STC15F2K60S2.H>#defineBUAD 9600//所需波特率、#defineSYSTEMCLOCK 11059200L//系统时钟频率,L表示该数据为长整型voiduart_......
  • 算法学习day12(动态规划)
    一、不同的二叉搜索树二叉搜索树的性质:父节点比左边的孩子节点都大;比右边的孩子节点都小;由图片可知,dp[3]是可以由dp[2]和dp[1]得出来的。(二叉搜索树的种类和根节点的val有关)当val为1时,左边是一定没有节点的,因为左边的值都要比根节点小;只有右边会有n-val个节点。所以当va......
  • 心得体会
    张传波老师的教学内容涵盖了Scrum的多个方面,‌包括但不限于神马是敏捷?SCRUM是神马?SCRUM的团队架构SCRUM的最佳实践UserStory(用户故事)Sprint(冲刺)BurnDownChart(燃尽图)其他:结对编程、持续集成、测试驱动、测试自动化每日会议、LessonsLearned。‌这些体现了他......
  • 学习了张传波老师的Scrum(敏捷方法论中的核心框架)后的心得体会
    1.Scrum的核心价值与实践在学习Scrum过程中,首先会深刻体会到Scrum所强调的核心价值:快速迭代、持续交付、客户为中心以及团队自组织。这些价值不仅改变了传统的软件开发流程,更推动了团队文化的转变,使团队能够更灵活地应对变化,更快地交付有价值的产品。2.角色转变与团队协作在Scr......