LetCode
LetCode系列
Jaksioncc
Code Code Code
展开
-
letcode_实现strStr()
题目实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "bba"输出: -1来源:力扣(LeetCode)解法一:(窗口移动)思路 子串逐一比较:沿原创 2020-08-31 19:18:36 · 108 阅读 · 0 评论 -
letcode_合并两个有序链表
题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解法一:迭代思路 (1)当l1或者l2其中一个为空时,则返回相对应的链表 (2)当l1和l2都不为空的时候,判断l1和l2哪一个链表的头节点值更小,将较小值添加到结果链表里 (3)当一个节点被添加到结果链表中时,将对应链表的指针向后移一位代码/**原创 2020-08-29 10:53:58 · 78 阅读 · 0 评论 -
letcode_有效括号
题目给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:输入: "([)]"输出: false示例 5:输入: "{[]}"输出: true解法一:暴力解法原创 2020-08-29 10:45:33 · 238 阅读 · 0 评论 -
letcode--最长公共前缀
题目示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。解法一:暴力解法思路 (1)找到字符串数组中字符串最短的长度 (2)循环截取每个字符串放到数组中,循环(1)获取的最短长度,在对每个list去重 (3)如果list去完重以后的长度为1,则说明是公共字符串,否者退出循环,返回代码 /** * 解法一: *原创 2020-08-23 19:35:12 · 146 阅读 · 0 评论 -
letcode-回文数
普通解法最简单粗暴的解法,把整数转为字符串,并把字符串分割成字符串数组,循环一般的数组判断是否相等。代码一class Solution { public boolean isPalindrome(int x) { //遍历一半数组,判断是否相等 if(x < 0){ return false; } char[] num_char = (x+"").toCharArray(); for(原创 2020-08-19 14:15:34 · 138 阅读 · 0 评论 -
letcode--最小栈
题目设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,null原创 2020-08-12 19:30:09 · 112 阅读 · 0 评论 -
Letcode--整数反转
题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。普遍的思路,新建一个数组反过来存,简单除暴,但是效率和内存消耗大class Solution { public int原创 2020-08-10 20:46:02 · 129 阅读 · 1 评论 -
Letcode-两数之和
题目给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1](1)方法一:双重for循环,简单粗暴class Solution { public int[] twoSum(int[] nums, int target) { int[] index = new int[2]; //双重递归 for(int i = 0;i < nums.原创 2020-08-09 20:19:40 · 150 阅读 · 0 评论