LeetCode
Posted 提拉米苏007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode相关的知识,希望对你有一定的参考价值。
1、两数之和:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
2、两数相加:给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。
3、无重复字符的最长子串:给定一个字符串,找出不含有重复字符的最长子串的长度。
4、两个排序数组的中位数
5、最长回文子串:遍历字符串,从每个字符开始,往左右遍历看左右是否相等,相等继续往外扩散
6、Z字形变换
7、反转整数:除以10取余,取商注意负数、及溢出情况
8、回文数:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数:注意负数;1、先转字符串再判断;2、反转一半数字
11、盛最多水的容器:给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
双指针法,一个指向开始,一个指向结尾,往中间移动
14、最长公共前缀:编写一个函数来查找字符串数组中的最长公共前缀。先遍历字符串数组,找出最短的字符串,遍历最短的字符串,和其他字符串一一比较;
15、三数之和:给定一个包含 n 个整数的数组 nums
,判断 nums
中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。
先排序,遍历数组,以当前数为目标值,从当前数的后一个数开始,到最后一个之间查找两个数与目标值相加=0的数,如果大于0,则右边的下标左移,如果小于0,则左边的下标右移,直到右边的下标大于等于左边的下标,结束当前的查找,其实相当于第一题。
16、最接近的三数之和:给定一个包括 n 个整数的数组 nums
和 一个目标值 target
。找出 nums
中的三个整数,使得它们的和与 target
最接近。返回这三个数的和。假定每组输入只存在唯一答案。
同上题, 先排序,遍历数组,以当前数为目标值,从当前数的后一个数开始,到最后一个之间查找两个数与目标值相加接近target
的数,如果大于target
,则右边的下标左移,如果小于target
,则左边的下标右移,直到右边的下标大于等于左边的下标,结束当前的查找
18、四数之和四数之和:给定一个包含 n 个整数的数组 nums
和一个目标值 target
,判断 nums
中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target
相等?找出所有满足条件且不重复的四元组。
同上题,先排序,遍历数组,两个for循环
19、删除链表的倒数第N个节点:2个指针,一个先走N步后,另一个指针从头结点开始,当第一个指针走到最后,另一个节点走到倒数第N个
20、有效的括号:给定一个只包括 ‘(‘
,‘)‘
,‘{‘
,‘}‘
,‘[‘
,‘]‘
的字符串,判断字符串是否有效。用LinkedList或者数组实现栈
英文:https://leetcode.com/problemset/all/
中文:https://leetcode-cn.com/
以上是关于LeetCode的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode810. 黑板异或游戏/455. 分发饼干/剑指Offer 53 - I. 在排序数组中查找数字 I/53 - II. 0~n-1中缺失的数字/54. 二叉搜索树的第k大节点(代码片段