关注Java领域相关技术 记录有趣的事情

双指针

LeetCode-344. 反转字符串

问题地址 LeetCode每日一题/2020-10-08 LeetCode344. 反转字符串 问题描述 规则 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 示例1 输入: 输出: 示例2 输入: 输出: 解析 解题思路 采用双指针 一个记录 当前元素的下标; 一个记录 当前元素对应的反转元素的下标; 给定数组,故数组的长度已知,所以 inx2(对应反转元素的下标) = len…
US-B.Ralph
11 months ago

LeetCode-75. 颜色分类

问题地址 LeetCode每日一题/2020-10-07 LeetCode75. 颜色分类 问题描述 规则 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 示例 输入: 输出: 进阶 一个直观的解决方案是使用计数排序的两趟扫描算法。 首先,迭代计算出0、1 和 2 元素的个数,然后按照0、1、2的排序,重写当前数组。 你能想出一个仅使用常数空间的一趟扫描算法吗? 解析 解题思路 数据操作分析 见…
US-B.Ralph
11 months ago