力扣动态规划-7【算法学习day.101】

打印 上一主题 下一主题

主题 981|帖子 981|积分 2943

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
前言

###我做这类文章一个重要的目的还是给正在学习的各人提供方向(比方想要掌握基础用法,该刷哪些题?发起灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常具体,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!

习题

1.最大子数组和

题目链接:53. 最大子数组和 - 力扣(LeetCode)
题面:

附上灵神代码:
  1. class Solution {
  2.     public int maxSubArray(int[] nums) {
  3.         int[] f = new int[nums.length];
  4.         f[0] = nums[0];
  5.         int ans = f[0];
  6.         for (int i = 1; i < nums.length; i++) {
  7.             f[i] = Math.max(f[i - 1], 0) + nums[i];
  8.             ans = Math.max(ans, f[i]);
  9.         }
  10.         return ans;
  11.     }
  12. }
复制代码

2.找到最大开销的子字符串

题目链接:2606. 找到最大开销的子字符串 - 力扣(LeetCode) 
题面:

代码
  1. class Solution {
  2.     Map<Character,Integer> map = new HashMap<>();
  3.     public int maximumCostSubstring(String s, String chars, int[] vals) {
  4.         char[] arr = chars.toCharArray();
  5.         for(int i = 0;i<arr.length;i++){
  6.             map.put(arr[i],vals[i]);
  7.         }
  8.         char[] brr = s.toCharArray();
  9.         int n = brr.length;
  10.         int[] f = new int[n+1];
  11.         f[0] = 0;
  12.         int ans = 0;
  13.         for(int i = 1;i<=n;i++){
  14.             f[i] = Math.max(f[i-1],0)+find(brr[i-1]);
  15.             ans=Math.max(f[i],ans);
  16.             // System.out.println(f[i]);
  17.         }
  18.         return ans;
  19.     }
  20.     public int find(char c){
  21.         int flag = map.getOrDefault(c,-10000);
  22.         if(flag!=-10000){
  23.             return flag;
  24.         }else{
  25.             return c-'a'+1;
  26.         }
  27.     }
  28. }
复制代码

后言

上面是动态规划相干的习题,共勉

 
 


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

渣渣兔

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表