首页 > 其他分享 >做题总结

做题总结

时间:2023-01-14 00:44:36浏览次数:59  
标签:总结 重复 复杂度 链表 做法 dp 指针

1.字符串问题

无重复字符的最长子串

我的做法:dp[i]表示以s[i]结尾的最长无重复字串,更新方程

if (i-dp[i-1], i-1)没有和dp[i]重复的元素,
	dp[i]=dp[i-1]+1
else dp[i] = i-samepos, samepos是从i向左数第一个和s[i]重复的元素

时间复杂度O(n^2),空间复杂度O(n)

更好的做法:滑动窗口
左右指针,左指针一次增加一个,右指针直接移动到最长不重复串,由于左指针移动是减少串长度,所以右指针总是递增的。时间复杂度O(N),空间复杂度O(1),只需要维护一个最多26个字母的unordered_set。

2.链表问题

反转链表

简单问题,分为递归做法和迭代。

实际问题

LRU 缓存

我的做法:用unordered_map存储映射,value存储成time_val形式的,在put和get操作时都更新timestamp。
存在的问题是:在put操作时检查最小时间戳需要O(n)时间,不符合要求。

实际做法:双向链表+哈希表
使用双向链表的原因:便于更新时间戳,为什么不用单向链表?因为删除尾部后无法找到上一个节点。
需要自己手动实现双向链表。

标签:总结,重复,复杂度,链表,做法,dp,指针
From: https://www.cnblogs.com/kenor/p/17051050.html

相关文章

  • 细节错误总结
    ElementalDecompress 当输入之后发现明显不可行的时候不要在for里面break会影响下一次的输入D-FriendlySpiders建图一定考虑到边的数量的问题......
  • javase知识点总结:三种程序逻辑结构,输入输出
    顺序结构顺序结构程序就是按语句出现的先后顺序执行的程序结构。计算机按顺序逐条执行语句,当一条语句执行完毕,自动转到下一条语句。分支结构if语句1.语法格式1if(......
  • 经典机器学习算法总结
    一,KNN算法1.1,k值的选取1.2,KNN算法思路二,支持向量机算法2.1,支持向量机简述2.2,SVM基本型2.3,对偶问题求解三,K-means聚类算法3.1,分类与聚类算法3.2,K-mea......
  • Python函数的学习总结
    (Python进阶11-函数)1函数的创建和调用1.1函数创建创建函数即定义函数使用关键字def实现语法:deffname([pname]): ["comm"] [fuc]说明:def:定义函数的,固定......
  • 破惑、问道、安顿。我的2022年终总结。
    靠近年底的月份,内心深处总会不断提醒你,该写年终总结了。无论是工作上,生活上,亦或是互联网、APP上,无数的年终报告提醒我,一年了也该总结一下自己了,不然这之前的1年是不是白过了......
  • AS安装报错总结
    SDK下载初学小白安装系统时,使用的Androidstudio版本为3.0.+版本,算是比较新的版本了。查阅百度文章没有找到相同的页面,自己使用时多少有些偏差。1.下载方式1.手动网......
  • 全网echarts案例资源大总结和echarts的高效使用技巧(细节版)
    全网echarts案例资源大总结和echarts的高效使用技巧(细节版)众所周知,在现今的开发大环境下,数据可视化(大屏化)项目在前端开发中的比重越来越大。而其中使用率最高的插件无疑......
  • 移动端wifi测试点总结
    1、WiFi功能测试:验证WiFi模块设置(如:添加AP、静态IP及动态IP的设置等)的相应功能是否正常;2、WiFi特性专项测试:1)WiFi打开速度或搜索速度的测试:验证W......
  • sql语句总结
    1、优秀sql语句:SELECT r.refund_code退单编号, r.order_code订单编号, g.product_full_name_cn商品名称, g.product_variant_code商品编码, CASE WHENlength(g.pro......
  • JDBC5 - API总结
    preparedStatement使用方式总结1.注册驱动2.获取连接3.编写SQL语句结构4.创建preparedStatement并且传入SQL语句结构5.占位符赋值6.发送SQL语句,并获取结果7.结果......