![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
文章平均质量分 95
叶锦小兴
我好帅
展开
-
字符串相关题目
1、指针相关344. 反转字符串.编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]双指针即可class Solution: def reverseString(self, s: List[str]) -> None: """ Do no原创 2021-07-30 00:00:50 · 312 阅读 · 0 评论 -
哈希表经典题目
1.哈希表哈希表(hash table),也可译为散列表。官方解释为:哈希表是根据关键码的值而进行直接访问的数据结构。我们先不管这个官方解释到底啥意思,直观上看,数组就是一张散列表。哈希表中的关键码就是数组的索引下标,我们可以直接通过下标来访问数组中的元素。哈希表主要用于快速判断一个元素是否出现在集合中。只需要O(1)的时间复杂度就能做到。2.哈希函数将元素映射到哈希表上就涉及到了哈希函数。比如要查询某个学生是否在一所学校中,需要将学生姓名映射为哈希表上的索引,通过查询索引下标快速判断该学生原创 2021-06-08 22:19:03 · 3956 阅读 · 5 评论 -
链表经典题目
一、虚拟头结点题目203. 移除链表元素.给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。在链表中想要删除一个节点,让节点(待删除节点的上一个节点)的next指针指向下下个节点即可(node.next = node.next.next)。除了正常的删除,我们还需要考虑特殊的情况,比如,删除的是头节点该怎么办?第一种方式:直接使用原来的链表进行删除操作即将头节点向后移动一位即可然后再将原本的头节点删原创 2021-05-19 11:20:34 · 504 阅读 · 0 评论 -
数组经典题目
一、二分查找题目704.二分查找.给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。题目中的前提条件有:1.数组为有序数组2.数组中无重复元素数组有序是使用二分法的前提,而且如果有重复元素,二分查找返回的元素下标可能不是唯一的,这些都是使用二分法的前提,看到题目满足如上条件时,可以考虑一下是不是可以使用二分法。二分法的思想虽然简单,但涉及边界条件,需要清楚定义区间,也就是定原创 2021-04-29 17:24:03 · 999 阅读 · 0 评论