1. 两数之和
给定一个整数数组 nums 和一个目标值 tatget, 请你在该数组中找出和为目标值的 那两个整数,并且返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
2. 两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 外,这两个数都不会以 0 开头。
示例:
输入:(2 -> 4 -> 3)+ (5 -> 6 -> 4)
输出: 7 -> 0 -> 8
原因: 342 + 465 = 807
3. 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: "abcabcbb"
输出:3
解释:因为无重复字符的最长子串是 "abc", 所以其长度为 3。
示例 2:
输入:"bbbbb"
输出:1
解释:因为无重复字符的最长子串是 "b", 所以其长度为 1。
示例 3:
输入:"pwwkew"
输出:3
解释:因为无重复字符的最长子串是 "wke", 所以其长度为 3。
请注意,你的答案必须是子串长度,"pwke" 是一个 子序列 ,不是子串。
4. 寻找两个有序数组的中位数
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。
请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O (log(m + n))。
你可以假设 nums1 和 nums2 不会同时为空。
示例 1:
nums1 = [1, 3]
nums2 = [2]
则中位数是 2.0
示例 2:
nums1 = [1, 2]
nums2 = [3, 4]
则中位数是 (2 + 3) / 2 = 2.5
5. 最长回文子串
给定一个字符串 s, 找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例 1:
输入:"babad"
输出:"bab"
注意:"aba" 也是一个有效答案
示例 2:
输入:"cbbd"
输出 "bb"
6. Z字形变化
将一个给定字符串根据给定的行数,以从上往下、从左到右的 Z 字形排列。
比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下:
image.png
之后,你的输出需要从左往右逐行读取,产生程一个新的字符串,比如"LCIRETOESIIGEDHN"。
请你实现这个将字符串进行制定行数变化的函数:
string convert(string s, int numRows);
示例 1:
输入:s = "LEETCODEISHIRING", numRows = 3
输出:"LCIRETOESIIGEDHM"
示例 2:
输入:s = "LEETCODEISHIRING", nuRows = 4
输出:"LDREOEIIECIHNTSG"
解释:
image.png
7. 整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入:123
输出:321
示例 2:
输入:-123
输出:-321
示例 3:
输入:120
输出:21
注意
image.png