摘要: 344.反转字符串 对字符串的基本操作。双指针一个指头一个指尾,交换后向中间移动即可。对于考察基本操作的题目,不要使用库函数。 交换操作,如果需要自己实现,有两种办法,一是使用临时变量,二是异或运算。使用临时变量的办法很常见,不额外贴代码。 异或运算的四种可能情况为:0 ^ 0 = 0, 0 ^ 1 阅读全文
posted @ 2022-10-20 12:09 RenewableGit 阅读(23) 评论(0) 推荐(0)
摘要: 做完题目,总算理解为什么三数之和荣获“初代噩梦”的称号了。真的是对照着题解才能弄明白每一步到底都想干些什么…… 454.四数相加II 从四个数组里各挑一个元素,只考察组合而不考察元素的值,无需对结果去重,三种罪导致四数相加II空有四数之名而毫无威慑力。 最暴力的做法就是四个 for 循环将所有元素一 阅读全文
posted @ 2022-10-19 00:24 RenewableGit 阅读(24) 评论(0) 推荐(0)
摘要: 时间问题,哈希表理论基础暂且按下不表,直接进入题目笔记。 242.有效的字母异位词 题目描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = 阅读全文
posted @ 2022-10-17 22:58 RenewableGit 阅读(27) 评论(0) 推荐(0)
摘要: 24. 两两交换链表中的节点 本题是一道模拟过程的题目。搞清楚两两交换的步骤之后,写出对应的代码也就不是难题了。不过在学习题解的过程中发现,两两交换的步骤也有很多种实现方式。自己在做题目的时候使用的思路如下: 进行两两交换之前,设置三个指针,分别指向dummy,head和head.next。因为需要 阅读全文
posted @ 2022-10-15 21:44 RenewableGit 阅读(25) 评论(0) 推荐(0)
摘要: 链表的数据结构基础 链表结构 链表是一种通过指针串联在一起的线性结构。每一个节点由两钟部分构成,一部分是数据域,一部分是指针域,指针域存放的指针指向另一个节点。链表最后一个节点指向下一个节点的指针域指向null。链表的头节点称为头节点,也可称为head。 链表类型 单链表 单链表即只有单向链接的列表 阅读全文
posted @ 2022-10-14 21:11 RenewableGit 阅读(161) 评论(0) 推荐(0)
摘要: 977.有序数组的平方 本题可以直接暴力计算出每一个数的平方后再进行排序,但时间复杂度最低也为O(n+nlogn),一次遍历,一次快速排序。 本题也可以使用双指针在不进行排序的情况下完成,时间复杂度为O(n),一次遍历即可。时间复杂度明显更优。 注意题目提示数组是有序的,意味着题目要求的目标矩阵里较 阅读全文
posted @ 2022-10-13 16:21 RenewableGit 阅读(554) 评论(0) 推荐(0)
摘要: 704. 二分查找 题目链接 使用条件: 数组有序 无重复元素 写法: 根据搜索区间边界是左闭右开还是左闭右闭分为两种写法: 左闭右开 区间右侧不包括在区间内,在写代码的时候需要时刻牢记这一点,否则很容易出错。 class Solution { public int search(int[] num 阅读全文
posted @ 2022-10-12 17:37 RenewableGit 阅读(755) 评论(0) 推荐(0)