
数据结构与算法
收录遇到的经典的算法题
白白甜甜冰
这个作者很懒,什么都没留下…
展开
-
LeetCode:最大子数组和(java实现)
一、问题描述现在给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 示例2:输入:nums = [1] 输出:1示例3:输入:nums = [5,4,-1,7,8]输出:23二、问题分析这是一道经典的动态规划的题目,假设nums原创 2022-03-10 22:30:59 · 1002 阅读 · 0 评论 -
反转链表的java实现
一、问题描述现在给你一个单链表的头节点 head ,请你反转链表,并返回反转后的链表示意图:单链表的定义:/** * 下面给出的是单链表的定义 * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) {原创 2022-03-04 10:29:11 · 6063 阅读 · 0 评论 -
爬楼梯问题(递归/动态规划)java实现
问题描述:假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?问题分析:这是一道十分经典的动态规划题目,我们可以用递归或者动态规划来实现求解。首先,假设n阶楼梯有 f(n)种方法爬到楼顶,由题意可知,我们每次可以爬1或2个台阶,因此我们可以得到如下递推式: f(n) = f(n - 1) + f(n - 2)我们还可以由题意知道以下初始条件:f(1) = 1...原创 2022-03-01 21:23:41 · 2044 阅读 · 0 评论