LeetCode1 Two Sum
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
1 | Given nums = [2, 7, 11, 15], target = 9, |
思路
这个找到两个数,使得相加和为target
。最简单的两重循环找到这个符合题意的值。
也可以一遍扫过去,每次找target-nums[i]
值是否出现过,出现了就返回,不然就存到数组中。
AC代码
1 | /** |
LeetCode5 Longest Palindromic Substring
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
Example 1:
1 | Input: "babad" |
Example 2:
1 | Input: "cbbd" |
思路
题意是找出一个最长的回文子串,有几种做法,我这里提供两种。
第一种是暴力,回文子串有两种,长度为奇数的和长度为偶数的,对于每个位置点,我向两边进行扩散,分别进行奇数和偶数长度的回文子串判断,然后维护一个长度最大值和这个子串的起始位置。
AC代码
1 | /** |
第二种是利用动态规划的思想,我们知道对于长度为1的都是回文子串,然后枚举子串长度和子串起点,判断是否是回文子串,维护一个最大值和子串的起始点。
AC代码
1 | /** |
LeetCode7 Reverse Integer
Given a 32-bit signed integer, reverse digits of an integer.
Example 1:
1 | Input: 123 |
Example 2:
1 | Input: -123 |
Example 3:
1 | Input: 120 |
思路
题意是让一个32位的带符号的整数倒置过来。
就先取绝对值,然后初始化一个result = 0
,把给定的数字n
除以十,得到余数作为最低位,商作为新的数字n
,result = result + 余数*10
,这样每次得到的最低位就会随着循环不断提升数位,从而得到逆序的result
。
AC代码
1 | /** |
LeetCode9 Palindrome Number
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.
Example 1:
1 | Input: 121 |
Example 2:
1 | Input: -121 |
Example 3:
1 | Input: 10 |
思路
给你一个数,看是不是回文数。首先负数肯定不会是回文数,直接return false
即可,小于10的非负整数都是回文return true
, 否则就从后往前进行逆序数组转数字运算,得到结果与初值进行比较,相等return true
。
AC代码
1 | /** |