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

wp网站开发地方网站发展

wp网站开发,地方网站发展,深圳网站开发找哪里,网站设计命名规范题目链接 Leetcode.2522 将字符串分割成值不超过 K 的子字符串 rating : 1605 题目描述 给你一个字符串 s s s ,它每一位都是 1 1 1 到 9 9 9 之间的数字组成,同时给你一个整数 k k k 。 如果一个字符串 s s s 的分割满足以下条件,我们…

题目链接

Leetcode.2522 将字符串分割成值不超过 K 的子字符串 rating : 1605

题目描述

给你一个字符串 s s s ,它每一位都是 1 1 1 9 9 9 之间的数字组成,同时给你一个整数 k k k

如果一个字符串 s s s 的分割满足以下条件,我们称它是一个 分割:

  • s s s 中每个数位 恰好 属于一个子字符串。
  • 每个子字符串的值都小于等于 k k k

请你返回 s s s 所有的 分割中,子字符串的 最少 数目。如果不存在 s s s 分割,返回 − 1 -1 1

注意:

  • 一个字符串的 是这个字符串对应的整数。比方说,"123" 的值为 $1234 ,"1" 的值是 1 1 1
  • 子字符串 是字符串中一段连续的字符序列。
示例 1:

输入:s = “165462”, k = 60
输出:4
解释:我们将字符串分割成子字符串 “16” ,“54” ,“6” 和 “2” 。每个子字符串的值都小于等于 k = 60 。
不存在小于 4 个子字符串的好分割。

示例 2:

输入:s = “238182”, k = 5
输出:-1
解释:这个字符串不存在好分割。

提示:
  • 1 ≤ s . l e n g t h ≤ 1 0 5 1 \leq s.length \leq 10^5 1s.length105
  • s [ i ] s[i] s[i]'1''9' 之间的数字。
  • 1 ≤ k ≤ 1 0 9 1 \leq k \leq 10^9 1k109

解法一 : 动态规划

我们定义 f ( i ) f(i) f(i) s s s 的前 i i i 个字符中,好分割的最少个数。按照定义,最终我们返回的答案就是 f ( n ) f(n) f(n)

那么我们很容易就能得出状态转移方程:

f [ j ] = m a x ( f [ j ] , f [ i ] + 1 ) ( s [ i + 1 , j ] ≤ k , i < j ) f[j] = max(f[j] , f[i] + 1) \qquad (s[i + 1,j] \leq k , i < j) f[j]=max(f[j],f[i]+1)(s[i+1,j]k,i<j)

由于 k ≤ 1 0 9 k \leq 10^9 k109,所以 j − i j - i ji 最大就是 9 9 9

时间复杂度: O ( n × 9 ) O(n \times 9) O(n×9)

C++代码:

class Solution {
public:int minimumPartition(string s, int k) {int n = s.size();vector<int> f(n + 1,1e9);f[0] = 0;for(int i = 0;i <= n;i++){int len = min(n , i + 9) , sum = 0;for(int j = i + 1;j <= len;j++){sum = sum * 10 + (s[j - 1] - '0');if(sum > k) break;f[j] = min(f[i] + 1 , f[j]);}}//for(int i = 1;i <= n;i++) cout<<f[i]<<" ";return f[n] == 1e9 ? -1 : f[n];}
};

解法二:贪心

我们每次分割的时候,让 好分割 尽可能的大,剩下的子串就更少,所能得到的 好分割 也就越少。

所以贪心策略就是,每次分割的时候让 好分割 尽可能地大,这样最终的答案就是最少的。

时间复杂度: O ( n ) O(n) O(n)

C++代码:

using LL = long long;class Solution {
public:int minimumPartition(string s, int k) {int n = s.size() , ans = 0;for(int i = 0;i < n;i++){//可能会溢出 所以要用 long longLL sum = 0;int j = i;for(;j < n;j++){if((s[j] - '0') > k) return -1;sum = sum * 10 + (s[j] - '0');if(sum > k) break;}ans++;i = j - 1;}return ans;}
};
http://www.yayakq.cn/news/115347/

相关文章:

  • 哪些网站可以做签约设计师广州企业500强名单
  • 深圳宝安网站建设学习网南网站建设 首选搜点网络
  • 手机怎么建自己的网站企业网络搭建是什么
  • 沧州手机网站建设有偷菜餐厅城市建设的网站
  • 自己做网站的成本夫妻之间的直播
  • 网站访问index.html公共服务平台官网
  • 做网站教程pdf公司网站建设会计分录
  • 做网站如何使用网页插件服装公司发展规划
  • 电脑版商城网站建设济南城市建设集团有限公司网站
  • 迅速建设企业网站网站建站代理加盟
  • 怎样做类似淘宝的网站做一个京东网站怎么做
  • 城乡住房和城乡建设厅网站首页shtml怎么做网站
  • 佛山定制软件开发公司安阳企业网站优化外包
  • 公司门面网站设计国内logo设计网站
  • 长沙网站优化电话微信公众号怎么做微网站
  • 自己做网站怎么做高端品牌网站建设哪家好
  • 网站正在建设中html5wordpress根目录
  • 网站拒绝了您的访问江门百度seo
  • 湖北省建设厅官方网站资料网品牌网站建设荐选蝌蚪
  • 行业协会网站织梦模板微商货源网站源码
  • 湘潭高端网站建设互联网营销师培训大纲
  • 宁波网站制作方案网店运营在哪里学比较好些
  • 手机网站相册代码网站备案需要审核多久
  • 汉沽做网站博物馆装修厂家
  • 做网站的困难上海建网站计划
  • 株洲专业网站建设品牌工业产品外观设计公司
  • 大红门做网站哪个网站有淘宝做图的素材
  • 淘宝网站网页图片怎么做石家庄网站建设找哪家好
  • 公司网站上传文章做只在自己电脑上的网站
  • 网站后台域名石家庄新闻频道直播