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

申请免费网站优质作文网站

申请免费网站,优质作文网站,论文收录网站,阿里云控制台登录入口1. 题目 给你一个字符串 s 和一个字符 c ,且 c 是 s 中出现过的字符。 返回一个整数数组 answer ,其中 answer.length s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。 两个下标 i 和 j 之间的 距离 为 abs(i - j) &#xff0c…

1. 题目

给你一个字符串 s 和一个字符 c ,且 c 是 s 中出现过的字符。

返回一个整数数组 answer ,其中 answer.length == s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。

两个下标 i 和 j 之间的 距离 为 abs(i - j) ,其中 abs 是绝对值函数。

2. 示例

3. 分析 

我们先尝试一下暴力解法:将目标字符每次出现的位置保存到数组中,然后遍历字符串依次比较每个字符与目标字符每次出现的位置进行比较,寻找较小值即可

class Solution {
public:vector<int> shortestToChar(string s, char c) {vector<int> index;vector<int> ans;int n = s.size();// 记录目标字符出现的位置for(int i = 0; i < n; i++){if(s[i] == c){index.push_back(i);}}// 遍历字符串,对每个字符与目标字符出现下标进行比较,寻找较小值for(int i = 0; i < n; i++){int minres = INT_MAX;for(int j = 0; j < index.size(); j++){minres = min(minres, abs(index[j]-i));}ans.push_back(minres);}return ans;}
};

时间复杂度:O(N2)


能不能做到 O(N),可以的:

问题可以转换成,对 每个字符s[i] 的下标 i,求

  • 每个字符s[i]到其左侧最近的字符 c 的距离。
  • 每个字符s[i]到其右侧最近的字符 c 的距离。

这两者的较小值。

分别对字符串从左往右、从右往左遍历。

从左往右:在遍历的同时记录二者的距离,也需更新目标字符的下标。但在刚开始遍历时,目标字符可能不存在,所以二者距离也因此不能记录,所以为了记录二者的距离,我们可以使用 -n 初始化目标字符下标,这里 n 是 字符串的长度,距离就为 abs(index - i)。若找到第一个目标字符,二者距离也为 abs(index - i)。

从右往左:同理。初始化目标字符下标为 2n这里 n 是 字符串的长度。顺便比较此时二者距离与从左往右遍历时二者距离哪个为较小者。

class Solution {
public:vector<int> shortestToChar(string s, char c) {int n = s.size();vector<int> ans(n);// 从左往右for(int i = 0, index = -n; i < n; i++){if(s[i] == c) index = i;ans[i] = i - index;}// 从右往左for(int i = n - 1, index = 2*n; i >= 0; i--){if(s[i] == c) index = i;ans[i] = min(ans[i], index - i);}return ans;}
};
http://www.yayakq.cn/news/192660/

相关文章:

  • 快手秒刷自助网站现在什么网络推广好
  • 网站页面设计 颜色 背景 要求国外h5网站模板
  • 网站怎么做响应wordpress模块化主题
  • 网站素材模板wordpress 找回密码页面模板
  • 网站备案主体撤销建站最好的公司排名
  • 太原网站建设公司招聘公司主页是什么意思
  • 厦门制作企业网站h5百度百科
  • 杭州建设招聘信息网站海口网站建设公司哪家好
  • 网站建设分期收费wordpress如何设置页面布局
  • 网站开发应用短信响应式网站模板免费
  • 安徽网站开发与维护专业建立自己的公司网站
  • 中国查公司的网站旅游网站开发研究背景
  • 做网站投广告攻略网教网站源码
  • 外贸柒夜网站建设公司vi设计什么意思
  • 伍菲网站建设成都最好的设计院
  • 商业网站建设与维护武城网站建设
  • 广州站长将自己做的网站发布到
  • 网站已备案 还不能访问小程序制作价格北京华网天下实惠
  • 手机怎么访问微网站wordpress指定分类文章详情页模板
  • 延庆宜昌网站建设济南建站网站
  • 江门英文网站建设施工企业 调研报告
  • 网上怎么注册网址wordpress百度seo
  • 天津知名网站建设公司wordpress外汇
  • 广安建设厅官方网站福田祥菱官网
  • 毕业设计可以做自己的网站吗毕业设计做网站想法
  • 越秀电子商务网站建设宁波网络推广公司价格
  • 大连门户网站开发济南网站系统优化
  • 公司网站设计的费用wordpress 链接失效
  • 沈阳建站公司模板淘宝网站建设策划报告
  • ps做网站的效果图网站制作 苏州