【算法之路】Leecode题解汇总(java)

it2024-03-17  58

背景 算法对程序员有多重要还用说嘛,现在诸多大厂面试都硬指标考核算法,虽然平时用的不多,但是用的不多不代表它没用,只能说我们目前还没上升到追求算法极限的境界。

近期喜迎1024程序员节,公司举办了算法大赛,没错,我厚颜无耻的报名了,虽然是一个算法小歘歘,但是万一运气好,出的题都会呢。所以最近的kotlin学习也停止了,没事开始刷题,为了以后得方便,本次刷题就直接记录下来。以后不定期更新。

2020-10-27更新状态: 果然算法比赛陪跑了,一道题没做出来,被一个刷了一年题的新入职的同事吊打了,所以,算法这个东西,除了天生大牛外,我们普通人还是得踏踏实实刷起来。近期把本次算法比赛相关的leecode原题全部总结进来,题还是比较有难度的,至少对于我来说,不简单呢。

声明: 本文中的解法有一些是根据大神讲解自己理解之后敲的,也有一些是自己想到的(这种一般人都能想到),如有雷同,绝壁是误会。

题库

Leecode1. 两数之和2. 两数相加3. 矩阵中的最长递增路径9. 回文数

Leecode

来源:力扣(LeetCode) 链接:https://leetcode-cn.com

1. 两数之和

描述

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

示例

给定 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. 矩阵中的最长递增路径

描述

给定一个整数矩阵,找出最长递增路径的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。

示例

输入: nums = [ [9,9,4], [6,6,8], [2,1,1]] 输出: 4 解释: 最长递增路径为 [1, 2, 6, 9]。

输入: nums = [ [3,4,5], [3,2,6], [2,2,1]] 输出: 4 解释: 最长递增路径是 [3, 4, 5, 6]。注意不允许在对角线方向上移动。

题解 矩阵中的最长递增路径

9. 回文数

描述

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例

输入: 121 输出: true

输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。

题解 回文数
最新回复(0)