
LeetCode
Mr_Faker
这个作者很懒,什么都没留下…
展开
-
算法题for THS
第一题穷尽集合之间的元素组合public class THS01 { public static void main(String[] args) { List<String> list1 = new ArrayList<>(); list1.add("1"); list1.add("2"); list1.add("3"); List<String> list2 = new Ar原创 2022-03-19 15:03:57 · 558 阅读 · 0 评论 -
链表中环的入口结点--LeetCode第142题
给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。题解:快慢指针法,快指针一次走两步,慢指针一次走一步,当快慢指针第一次相遇,此时: 2(x+y)=n圈周长+x+y相遇以后快指针回到head和慢指针以同样速度每次走一步,最终会在链表中环的入口结点处相遇。这里可以这样理解, x + y = n圈周长, y = n圈周长 - x; 快慢指针再继续走x后, 快指针走到入口点,此时慢指针再圆中走的路程为: x + y, 刚好为圆n圈周长。package com.a.原创 2021-01-14 21:43:51 · 289 阅读 · 0 评论 -
两个链表的第一个公共节点 -剑指Offer第52题
输入两个链表,找出它们的第一个公共节点。如下面的两个链表:注意:如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没有循环。程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。解题思路:可以先计算两个链表的长度,长度差为n,首先,比较长的链表header先往后移动n步,然后两个链表一起往后移动,如果一样,则为公共节点。package com.alibaba.study.offer;/** * @Auther: w原创 2020-12-16 21:25:40 · 247 阅读 · 0 评论 -
数组中的逆序对 - 剑指Offer第51题
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例 :输入: [7,5,6,4]输出: 5解题思路:参考LeetCode解题思路:https://leetcode-cn.com/problems/shu-zu-zhong-de-ni-xu-dui-lcof/solution/shu-zu-zhong-de-ni-xu-dui-by-leetcode-solution/package com.alibaba.s原创 2020-12-16 09:50:17 · 198 阅读 · 0 评论 -
合并K个升序链表 - LeetCode第23题
给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6提示:k == lists.length0 <原创 2020-12-14 19:23:38 · 205 阅读 · 0 评论 -
括号生成 - LeetCode第22题
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例:输入:n = 3输出:[ “((()))”, “(()())”, “(())()”, “()(())”, “()()()”]解题思路:采用递归的思路,每个位置放置一个字符,可能是“(”,也可能是“)”,但是左右括号数量不允许超过 n, 右括号数量在放置的时候,不允许超过左括号数量。package com.alibaba.study.leetcode;import原创 2020-12-11 14:50:39 · 283 阅读 · 4 评论 -
电话号码的字母组合 - LeetCode第17题
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].解题思路:可以按照递归的思路解题,递归遍历每一个数值,每个数字取一个字母,拼接起来。import com.alibaba.fastjson.JSON;import java.util.Calendar;impor原创 2020-12-07 21:15:22 · 145 阅读 · 0 评论 -
最接近的三数之和 - LeetCode第16题
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。3 <= nums.length <= 10^3-10^3 <= nums[i] <= 10^3-10^4 <= target <= 10^4示例输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (原创 2020-12-07 18:49:09 · 173 阅读 · 2 评论 -
整数转罗马数字 - LeetCode第12题
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M原创 2020-12-03 23:52:24 · 161 阅读 · 0 评论 -
字符串转整数 - LeetCode第8题
请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字符串中的第一个非空格字符不是一个有效整数原创 2020-12-02 15:39:04 · 194 阅读 · 0 评论