LeetCode
lreis2010
乐观开朗
展开
-
leetcode-8. 字符串转换整数 (atoi)
问题描述: 请你来实现一个myAtoi(string s)函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。算法的具体规则可以查阅链接。 简单分析: 题目比较简单,遍历字符串,对各个字符串按照规则逐个处理即可。在翻阅官方题解中,发现状态机的实现算法,减少冗余代码。 ...原创 2021-09-15 10:40:00 · 123 阅读 · 0 评论 -
leetcode-7. 整数反转
问题描述:给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围[−231,231− 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 简单分析: 题目不难,注意下整数范围判断即可。 编码: class Solution { public int reverse(int x) { int ret = 0; while (x !=0){ ...原创 2021-09-13 20:02:11 · 99 阅读 · 0 评论 -
leetcode-6. Z 字形变换
问题描述:将一个给定字符串s根据给定的行数numRows,以从上往下、从左到右进行Z 字形排列。 简单分析: 思路:拿到这个题目后,我首先想到了基数排序,模仿其原理,将不同的字符按照所在字符串的索引分装到不同的"木桶"中,最后合并木桶,即可得到最终的字符串。这个方法,需要单独开辟O(n)的空间存储数据,并且数据在原始字符串/桶/结果值之间移动,造成了时间的浪费。提交结果不是很理想。o(╥﹏╥)o 优化:基于第一种,不转存数据,每个桶作为一层,直接将每层的数据输出到结果值中。 编码: 方法...原创 2021-09-13 17:05:20 · 121 阅读 · 0 评论 -
leetcode-5. 最长回文子串
问题描述:给你一个字符串s,找到s中最长的回文子串。 简单分析: 回文子串的要求是以某个点为中心左右两边的字符是一样的,这样对字符串中任意一个位置{i},只需要判断{i}左右两边的字符是否一样就能算出{i}位置的半径R[i]。文中为了排除奇偶性的干扰,对字符串做了加工,所以过程分为一下三部: 修正数据,排除奇偶性的干扰 计算每个位置的半径,并取其中的最大值 过滤数据,组装最终的结果。 备注: 翻阅了其他题解,我的解题思路应该属于中心扩展算法,时间复杂度是O()。另外有Manacher 算法...原创 2021-09-10 18:46:08 · 81 阅读 · 0 评论 -
leetcode-4. 寻找两个正序数组的中位数
问题描述:给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。 简单分析: 所谓中位数就是一个数据中居于中间位置的数,两个数组(m+n) /2位置的数据是我们要找的数据,所以该问题的关键点有两个: 遍历两个数组,查找第(m+n)/2位置的数字 考虑数组的长度奇偶性,需要记录索引(m+n)/2位置之前的那个数字 class Solution { public double findMedianSortedArrays(...原创 2021-09-09 20:35:21 · 100 阅读 · 0 评论 -
leetcode-3. 无重复字符的最长子串
问题描述:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 简单分析: 字符串相关的处理优先考虑滑动窗口算法 编码 class Solution { public int lengthOfLongestSubstring(String s) { if (s == .原创 2021-09-08 15:12:21 · 89 阅读 · 0 评论 -
leetcode-2. 两数相加
问题描述:给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0开头。 简单分析: 题目比较简单,两个数【n位数,m位数】的加法,是从低位逐层进行计算,程序终止于第i层的必要条件是: i > n i > m i - 1层没有进位 编码 /** * Definition for singly-linked ...原创 2021-09-08 15:04:29 · 54 阅读 · 0 评论 -
leetcode-1. 两数之和
问题描述:给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 ...原创 2021-09-08 14:41:52 · 65 阅读 · 0 评论