动态规划(一) 变态青蛙跳台阶、最大连续子数组和、字符串分割 附源码讲解

这篇具有很好参考价值的文章主要介绍了动态规划(一) 变态青蛙跳台阶、最大连续子数组和、字符串分割 附源码讲解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实现

import java.util.*;

public class Main {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

while (scan.hasNext()){

int length = scan.nextInt();

int[] array = new int[length];

for (int i = 0; i < length; i++) {

array[i] = scan.nextInt();

}

System.out.println(findResult(array));

}

}

private static int findResult(int[] array) {

if (array == null || array.length == 0) {

return 0;

}

//此时ret就表示初始状态

int ret = array[0];

//从第二个元素开始判断 选取最大值

for (int i = 1; i < array.length; i++) {

//选取以当前第i个元素结尾的最大子数组的和

array[i] = Math.max(array[i - 1] + array[i], array[i]);

//如果此时的最大连续子数组的和大于前一个就行赋值

if (array[i] > ret) {

ret = array[i];

}

}

return ret;

}

}

字符串分割


  • 给定一个字符串和一个词典dict,确定s是否可以根据词典中的词分成 一个或多个单词。

比如,给定

s = “leetcode”

dict = [“leet”, “code”]

返回true,因为"leetcode"可以被分成"leet code"

动态规划(一) 变态青蛙跳台阶、最大连续子数组和、字符串分割 附源码讲解,2024年程序员学习,动态规划,java,算法

实现

public boolean wordBreak(String s, Set dict) {

if (s == null || s.length() == 0) {

return false;

}

//设置f(i) 但是要使长度加一 为了设置第一个初始态为true 方便后面以第i个元素之前的整体去判断是否在字典中存在

Boolean[] booleans = new Boolean[s.length() + 1];

booleans[0] = true;

//累加字符去判断

for (int i = 1; i <= s.length(); i++) {

//j必须小于i 因为要通过j去找前面的那些已经判断了的哪个是true

//j要>= 0 因为在下面中的s.sub中使用的是左闭右开 所以只有booleans[0]为true 并且j等于0才能得到我嗯想要的结果

for (int j = i - 1; j >= 0; j–) {

//使用转移方程

if (booleans[j] && dict.contains(s.substring(j, i))) {

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
动态规划(一) 变态青蛙跳台阶、最大连续子数组和、字符串分割 附源码讲解,2024年程序员学习,动态规划,java,算法
动态规划(一) 变态青蛙跳台阶、最大连续子数组和、字符串分割 附源码讲解,2024年程序员学习,动态规划,java,算法
动态规划(一) 变态青蛙跳台阶、最大连续子数组和、字符串分割 附源码讲解,2024年程序员学习,动态规划,java,算法
动态规划(一) 变态青蛙跳台阶、最大连续子数组和、字符串分割 附源码讲解,2024年程序员学习,动态规划,java,算法
动态规划(一) 变态青蛙跳台阶、最大连续子数组和、字符串分割 附源码讲解,2024年程序员学习,动态规划,java,算法
动态规划(一) 变态青蛙跳台阶、最大连续子数组和、字符串分割 附源码讲解,2024年程序员学习,动态规划,java,算法

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
动态规划(一) 变态青蛙跳台阶、最大连续子数组和、字符串分割 附源码讲解,2024年程序员学习,动态规划,java,算法

总结

大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。

麻烦帮忙转发一下这篇文章+关注我

动态规划(一) 变态青蛙跳台阶、最大连续子数组和、字符串分割 附源码讲解,2024年程序员学习,动态规划,java,算法

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
动态规划(一) 变态青蛙跳台阶、最大连续子数组和、字符串分割 附源码讲解,2024年程序员学习,动态规划,java,算法

711189746)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-1RfyvlmM-1712711189746)]文章来源地址https://www.toymoban.com/news/detail-854758.html

到了这里,关于动态规划(一) 变态青蛙跳台阶、最大连续子数组和、字符串分割 附源码讲解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (动态规划) 剑指 Offer 42. 连续子数组的最大和 ——【Leetcode每日一题】

    难度:简单 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为 O(n) 。 示例1: 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 提示 : 1 = a r r . l e n g t h = 1 0 5 1 = arr.length = 10^

    2024年02月11日
    浏览(38)
  • 【动态规划】NK刷题记之DP6 连续子数组最大和(C语言实现)

    ❤️博客主页:小镇敲码人 🍏 欢迎关注:👍点赞 👂🏽留言 😍收藏 🌞 勤奋努力是一个长期的过程,如果追求速成,就是异想天开。你越努力、越认真生活,生活就会变得越美丽。如果一直保持奋斗,你的人生将会发生翻天覆地的变化。 🍉 如果你也迷失在了路上,对人

    2024年02月08日
    浏览(37)
  • 【动态规划基础】求最大连续子序列和——最大子段和

    给出一个长度为 n n n 的序列 a a a ,选出其中连续且非空的一段使得这段和最大。 第一行是一个整数,表示序列的长度 n n n 。 第二行有 n n n 个整数,第 i i i 个整数表示序列的第 i i i 个数字 a i a_i a i ​ 。 输出一行一个整数表示答案。 样例输入 样例输出 样例 1 解释 选取

    2024年02月03日
    浏览(34)
  • 乘积最大子数组--动态规划

    乘积最大子数组 思路: 看到这个题的时候 要用DP的想法去做这道题 想到遍历到前面的值能不能为后面所用 假设有n个值 我们可以记录一下 第i个值的最大值是什么 怎么用到前面的值取判断 第i个值 可能正数 也可能是负数 如果是正数 那么我们乘以后面第i-1位的最大值 可以得

    2024年02月11日
    浏览(28)
  • 动态规划——最大子数组和

    最大子数组和 Time Limit:  1000 MS Memory Limit:  5000 KB Description Input Output Sample Input Sample Output 显然该题应使用动态规划的方法求解。 可以使用动态规划来求解最大子数组和。假设dp[i]表示以第i个元素结尾的最大子数组和,那么可以得到以下状态转移方程: dp[i] = max(dp[i-1]+a[i], a[

    2024年02月02日
    浏览(29)
  • 最大子数组和:动态规划

    Problem: 53. 最大子数组和 首先就是赋予dp[0]为nums[0],然后循环遍历数组判断dp[i-1]是否小于0,如果小于0那么dp[i]就是nums[i],负责dp[i]就是dp[i-1]+nums[i],这样就可以保证每个dp[i]都是目前序列的最大值,最后返回最大的dp[i]就好 描述你的解题方法 时间复杂度: 添加时间复杂度, 示例:

    2024年02月05日
    浏览(29)
  • 【算法思考记录】动态规划入门!力扣2606. 找到最大开销的子字符串【Python3、动态规划】

    原题链接 动态规划(Dynamic Programming,简称 DP)是一种通过将原问题分解为相互重叠的子问题并只解决一次的方法来解决问题的算法优化技术。动态规划通常用于优化递归问题,通过存储子问题的解来避免重复计算,从而显著提高算法的效率。 动态规划的基本思想是将原问题

    2024年02月03日
    浏览(26)
  • 【学会动态规划】最大子数组和(19)

    目录 动态规划怎么学? 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后: 学习一个算法没有捷径,更何况是学习动态规划, 跟我一起刷动态规划算法题,一起学会动态规划! 题目链接:53. 最大子数组和 - 力扣(L

    2024年02月12日
    浏览(26)
  • 【动态规划系列】子数组的最大和

    💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老 导航 檀越剑指大厂系列:全面总

    2024年02月03日
    浏览(25)
  • 动态规划——最大子数组和(Leetcode 53)

    解题代码: ===== int maxSubArray(int* nums, int numsSize){ int pre = 0, maxAns = nums[0]; 自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。 深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训

    2024年04月26日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包