当前位置: 首页 > news >正文

如何做好网站设计大连网站优化

如何做好网站设计,大连网站优化,重庆九龙坡区网站建设,深圳营销型网站建设多少钱目录 一、3438. 找到字符串中合法的相邻数字二、3439. 重新安排会议得到最多空余时间 I三、3440. 重新安排会议得到最多空余时间 II四、3441. 变成好标题的最少代价 一、3438. 找到字符串中合法的相邻数字 题目链接 本题有两个条件: 相邻数字互不相同两个数字的的…

目录

  • 一、3438. 找到字符串中合法的相邻数字
  • 二、3439. 重新安排会议得到最多空余时间 I
  • 三、3440. 重新安排会议得到最多空余时间 II
  • 四、3441. 变成好标题的最少代价

一、3438. 找到字符串中合法的相邻数字

题目链接
在这里插入图片描述
本题有两个条件:

  • 相邻数字互不相同
  • 两个数字的的出现次数等于数字本身

先预处理字符串 s s s 中每个字符的出现次数,再从左往右两两枚举,返回第一个满足上述条件的相邻数字,没有返回空字符串。

代码如下:

class Solution {public String findValidPair(String s) {int[] cnt = new int[10];for(char c : s.toCharArray()){cnt[c-'0']++;}for(int i=1; i<s.length(); i++){int x = s.charAt(i) - '0';int y = s.charAt(i-1) - '0';if(x == y) continue;if(cnt[x] == x && cnt[y] == y)return s.substring(i-1, i+1);}return "";}
}

二、3439. 重新安排会议得到最多空余时间 I

题目链接
在这里插入图片描述
题目求至多平移 k k k 个会议后,可以获得的最大空余时间,与会议本身的时间无关,可以预处理出会议之间的空余时间(注:不要忘记第一个会议开始前和最后一个会议结束后的空余时间),贪心的想,平移的会议越多,可以获得的空余时间越大,此时题目变成了平移 k k k 个会议后,可以获得的最大空余时间,讨论 k k k 的大小:

  • k = 1 k=1 k=1,对于 1 1 1 个会议来说,无论它往前移还是往后移,它会使得连续的 2 2 2 段空余时间合并.
  • k = 2 k=2 k=2,对于 2 2 2 个会议来说,无论它们往前移还是往后移,它会使得连续的 3 3 3 段空余时间合并.
  • 对于 k k k 个会议来说,无论它们往前移还是往后移,它会使得连续的 k + 1 k+1 k+1 段空余时间合并.

也就是说它其实是一个滑动窗口题,就是维护连续 k + 1 k+1 k+1 段空余时间的最大值。

代码如下:

class Solution {public int maxFreeTime(int event, int k, int[] start, int[] end) {int n = start.length;int[] t = new int[n+1];t[0] = start[0];t[n] = event - end[n-1];for(int i=1; i<n; i++){t[i] = start[i] - end[i-1];}int ans = 0, res = 0;for(int l=0,r=0; r<n+1; r++){res += t[r];if(r-l+1 > k + 1){res -= t[l];l++;}ans = Math.max(ans, res);}return ans;}
}

三、3440. 重新安排会议得到最多空余时间 II

题目链接
在这里插入图片描述

本题与 T2 的区别在于只能移动 1 个会议,且会议之间的顺序可以发生改变,这将会导致一个新的情况,如果会议 i i i 可以移动到会议 i − 1 i-1 i1 前面的空余时间或者会议 i + 1 i+1 i+1 后面的空余时间中(即会议 i i i 的大小 <= 空余时间),那么当前的空余时间 = 会议 i i i 与 会议 i − 1 i-1 i1 的空余时间 + 会议 i i i 与 会议 i + 1 i+1 i+1 的空余时间 + 会议 i i i 本身的时间。否则与 T2 情况相同,当前的空余时间 = 会议 i i i 与 会议 i − 1 i-1 i1 的空余时间 + 会议 i i i 与 会议 i + 1 i+1 i+1 的空余时间

接下来就是如何判断会议 i i i 可以移动到后面或前面,这里可以使用前后缀分解的做法来预处理 [ 0 , i − 1 ] [0,i-1] [0,i1] 的最大空余时间,和 [ i + 1 , n − 1 ] [i+1,n-1] [i+1n1] 的最大空余时间。

代码如下:

class Solution {public int maxFreeTime(int event, int[] start, int[] end) {int n = start.length;int[] t = new int[n+1];t[0] = start[0];t[n] = event - end[n-1];int ans = Math.max(t[0], t[n]);int[] pre = new int[n+1];//前缀最大值pre[0] = t[0];for(int i=1; i<n; i++){t[i] = start[i] - end[i-1];pre[i] = Math.max(pre[i-1], t[i]);}int[] suf = new int[n+1];//后缀最大值suf[n] = t[n];for(int i=n-1; i>=0; i--){suf[i] = Math.max(suf[i+1], t[i]);}int res = 0;for(int l=0,r=1; r<n+1; l++,r++){int len = end[l] - start[l];//判断当前 会议l 能否移动到前面/后面if(l>0 && pre[l-1] >= len || l+2<n+1 && suf[l+2] >= len)ans = Math.max(ans, t[r] + t[l] + len);else ans = Math.max(ans, t[l] + t[r]);}return ans;}
}

四、3441. 变成好标题的最少代价

题目链接
在这里插入图片描述
对于本题来说,它返回的好标题需要满足两个条件,操作次数最少且字典序最小,可以先使用 d f s dfs dfs 计算出得到好标题的最小操作次数,定义 d f s ( i , j ) : dfs(i,j): dfs(i,j): i i i 个位置变成 j j j 时, [ i + 1 , n − 1 ] [i+1,n-1] [i+1,n1] 变成好标题的最小操作次数,然后转成 d p dp dp,此时可以使用数组记录每个状态的转移来源,最后逆推得到操作次数最小的最小的字典序。

代码如下:

class Solution {public String minCostGoodCaption(String caption) {int n = caption.length();if(n < 3) return "";int res = Integer.MAX_VALUE;char[] s = caption.toCharArray();int[][] f = new int[n+1][26];int[][] nxt = new int[n+1][26];int[] minJ = new int[n+1];for(int i=n-1; i>=0; i--){int mn = Integer.MAX_VALUE;for(int j=0; j<26; j++){int res1 = f[i+1][j] + Math.abs(s[i] - 'a' - j);int res2 = i <= n - 6 ? f[i+3][minJ[i+3]] + Math.abs(s[i] - 'a' - j) + Math.abs(s[i+1] - 'a' - j) + Math.abs(s[i+2] - 'a' - j) : Integer.MAX_VALUE;if(res1 > res2 || res1 == res2 && minJ[i+3] < j){res1 = res2;nxt[i][j] = minJ[i+3];}else{nxt[i][j] = j;}f[i][j] = res1;if(res1 < mn){mn = res1;minJ[i] = j;}}}char[] ans = new char[n];int i = 0, j = minJ[0];while(i < n){ans[i] = (char)(j + 'a');int k = nxt[i][j];if(k == j){i++;}else{ans[i+2] = ans[i+1] = ans[i];i += 3;j = k;}}return new String(ans);}
}
http://www.ds6.com.cn/news/116137.html

相关文章:

  • jpress和wordpressseo搜索优化专员招聘
  • 谈谈网站的开发流程微信营销的案例
  • 三网合一 做网站新站seo优化快速上排名
  • 什么公司网站建设做的好软文发稿公司
  • 旅行社电商网站怎么做企业策划书
  • 网站开发公司 广告词网络营销的概述
  • 做网站老师免费seo推广计划
  • 电影购票网站开发背景郑州seo推广
  • 网站建设一般要提供什么内容搜索引擎优化的五个方面
  • 网站网页设计一句简短走心文案
  • 成都网站开发的公司百度投诉电话人工客服24小时
  • 有做酒席酒水网站吗上海网站建设公司排名
  • 美国站点网站怎么做下载百度地图2022最新版
  • 网站建设案例要多少钱如何开网站呢
  • 如何自己建网站服务器广州seo网站服务公司
  • 效果图制作网站网站的seo如何优化
  • 网站建设费怎么做会计分录百度营销客户端
  • 安卓从网站获取视频怎么做网站维护工程师
  • 公司开发个网站如何做google推广
  • 孝感网站建设 付款方式 银行关键词搜索爱站网
  • 深圳 网站建设公公司网络搭建
  • 广州网站建设咨询电话seo排名软件免费
  • 中职学校网站建设情况总结腾讯企点账户中心
  • 小说网站做编辑济南特大最新消息
  • 黑苹果做网站开发无锡营销型网站建站
  • 河南智慧团建官网网站搜索引擎优化
  • 淮北市矿业工程建设公司网站千锋教育培训机构可靠吗
  • 怎么用自己的网站做网页网站主页
  • 网站怎么做需要花钱吗发布新闻
  • dnf交易网站建设东莞建设企业网站