马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
前言
###我做这类文章一个重要的目的还是给正在学习的各人提供方向(比方想要掌握基础用法,该刷哪些题?发起灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常具体,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!
习题
1.最大子数组和
题目链接:53. 最大子数组和 - 力扣(LeetCode)
题面:
附上灵神代码:
- class Solution {
- public int maxSubArray(int[] nums) {
- int[] f = new int[nums.length];
- f[0] = nums[0];
- int ans = f[0];
- for (int i = 1; i < nums.length; i++) {
- f[i] = Math.max(f[i - 1], 0) + nums[i];
- ans = Math.max(ans, f[i]);
- }
- return ans;
- }
- }
复制代码 2.找到最大开销的子字符串
题目链接:2606. 找到最大开销的子字符串 - 力扣(LeetCode)
题面:
代码
- class Solution {
- Map<Character,Integer> map = new HashMap<>();
- public int maximumCostSubstring(String s, String chars, int[] vals) {
- char[] arr = chars.toCharArray();
- for(int i = 0;i<arr.length;i++){
- map.put(arr[i],vals[i]);
- }
- char[] brr = s.toCharArray();
- int n = brr.length;
- int[] f = new int[n+1];
- f[0] = 0;
- int ans = 0;
- for(int i = 1;i<=n;i++){
- f[i] = Math.max(f[i-1],0)+find(brr[i-1]);
- ans=Math.max(f[i],ans);
- // System.out.println(f[i]);
- }
- return ans;
- }
- public int find(char c){
- int flag = map.getOrDefault(c,-10000);
- if(flag!=-10000){
- return flag;
- }else{
- return c-'a'+1;
- }
- }
- }
复制代码 后言
上面是动态规划相干的习题,共勉
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |