算法
文章平均质量分 50
拼命奔跑
这个作者很懒,什么都没留下…
展开
-
Day7 赎金信
给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。因为题目所只有小写字母,那可以采用空间换取时间的哈希策略, 用一个长度为26的数组还记录magazine里字母出现的次数。你可以假设两个字符串均只含有小写字母。依然是数组在哈希法中的应用。原创 2023-07-20 13:43:53 · 38 阅读 · 0 评论 -
Day7 四数相加II
为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500。所有整数的范围在 -2^28 到 2^28 - 1 之间,最终结果不会超过 2^31 - 1。给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。原创 2023-07-20 11:37:45 · 47 阅读 · 0 评论 -
Day6 两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。给定 nums = [2, 7, 11, 15], target = 9。因为 nums[0] + nums[1] = 2 + 7 = 9。所以返回 [0, 1]原创 2023-07-19 18:29:23 · 35 阅读 · 0 评论 -
Day6 有效的字母异位词
示例 1: 输入: s = "anagram", t = "nagaram" 输出: true。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 2: 输入: s = "rat", t = "car" 输出: false。你可以假设字符串只包含小写字母。原创 2023-07-19 11:54:16 · 25 阅读 · 0 评论 -
Day6 两个数组的交集
输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。题意:给定两个数组,编写一个函数来计算它们的交集。原创 2023-07-19 11:24:42 · 22 阅读 · 0 评论 -
Day04 链表相交
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构。原创 2023-07-18 18:18:18 · 44 阅读 · 1 评论 -
Day04 删除链表的倒数第N个结点
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2:输入:head = [1], n = 1 输出:[] 示例 3:输入:head = [1,2], n = 1 输出:[1]原创 2023-07-18 10:45:05 · 22 阅读 · 1 评论 -
Day3 206.反转链表
题意:反转一个单链表。示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL。原创 2023-07-15 22:04:40 · 60 阅读 · 1 评论 -
Day04 两两交换链表中的节点
/初始化一个虚拟节点//将虚拟节点与头结点连接起来://当头节点为空,就直接返回空结点//当头结点的下一个结点为空,就意为这链表中只有一个结点,此时也不用两两交换了,直返回那个结点就行;//要交换结点,需要提前准备好3个结点;原创 2023-07-17 18:03:07 · 27 阅读 · 1 评论 -
Day2 707.设计链表
力扣题目链接(opens new window)题意:在链表类中实现这些功能:2.头插:在链表的最前面插入一个新节点,插入完成后,新插入的节点成为链表新的头结点; 3.尾插:在链表最后面添加一个节点:4.在第index之前插入一个节点: //4.1 index = 0;插入的节点为链表的新头节点; //4.2 index等于链表的长度(size),那么新插入的节点为链表的尾节点; //4.3 index大于链表的长度,那么返回空; //4.4 index小于原创 2023-07-15 18:13:39 · 95 阅读 · 1 评论 -
Day2 203.移除链表元素
题意:删除链表中等于给定值 val 的所有节点。示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]示例 2: 输入:head = [], val = 1 输出:[]示例 3: 输入:head = [7,7,7,7], val = 7 输出:[]原创 2023-07-15 17:57:34 · 32 阅读 · 1 评论 -
Day01 27. 移除元素
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。原创 2023-07-14 16:06:57 · 36 阅读 · 1 评论 -
Day01 704. 二分查找
1.给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。123123说实话,看到本题之后我的第一想法是利用迭代器将vector容器遍历一遍,然后找到Target元素。后来又用了STL中的find函数直接找到目标元素。该题正确的打开方式是:看到有序且无重复元素,就应该想到用二分查找,因为这些都是使用二分查找的前提。原创 2023-07-13 20:52:17 · 37 阅读 · 1 评论