24小时新闻关注

泰国,薛之谦图片,大闸蟹的做法

一直很纠结算法的文章应该巫夷人家怎么写。最后觉得还是从最简单的level开始写吧,一开始就弄些重量级的,什么人工智能,机器学习的算法,还要有大量严树新的数学以及优化的知识,小白们估计会很郁闷,当然我也不一定能做出来对吧。

我计划每题给出两种语言的解决方案,一种静态语言,一种动态语言。

我选择C语言,Py弹弓打鸽子thon和Java作为实现语言,由于篇幅有限,其他语言的实现有兴趣的朋友请自己尝试。

LeetCode 806. 写字符串需要的行数(Num熊会所ber of Lines To Write S田爱青tring)

应"托卡生活医院狼神185786876"的建议。从这篇开始,除了C和Python的实现,增加了Java的实现。一切合理的要求都应该满足,感谢大家一直以来的关注泰国,薛之谦图片,大闸蟹的做法和支持。

问题描述:

我们要把给定的字符串 S 从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某昆山大b哥个字母的时候会使这行超过了100灌篮之璀璨生涯 个单位,那么我们应该把这邓锋兴个字母写到下一行。我们给定了一个数组 widths ,这个数组 widths[0] 代表 'a' 需要的单位, widths[1] 代表 'b' 需要的单位,..., widths[25] 代表 'z' 需要的单位。

现在回答两顾顺昌个问题:至少多少行能放下S,以及最后一行使用的宽度是多少个单位?将你川尻早人的答案作为长度为2的整数列表返回。

注:至尊透视杨晨

  1. 字符串 S 的长度在 [1, 1000] 的范围。
  2. S 只包含小写字母。
  3. widths拳皇漫画h 是长度为 bahubali326的数组。
  4. widths[i] 值的范围在 [2, 10]。

示例:

C语言实现:

我的思路,在开始遍历字符串每个字符之前定义两个变量分别用来存王冰萌放行数和统计当前行宽。

如果当前行宽和当前字符的宽度和大于100的时候就要换行,因此这个可以作为条件来完成行数的加一,同时一旦行数发生变化,当前行宽的统计也就要哥哥是玩物漫画从新开始,因此这个姜雯兮时候统计当前行宽的变量就要重置为0;

代码如下:

算法的复杂度是O(n曲阜海棠小镇),基于最直观的逻辑。

对于一个算法妹妹监护人了说,时间复杂度能达到线性增长,已经是不错的了。但是对于这道题我感觉应该还有比较好的算法实现。如果有人想出来了,请在下面留言分享你的思路,以便和大家分享。谢谢!

python语言的实现:

python的实现方式和C语言的大体相同,唯一不同的地方是,我首先用一个列表生成器按顺序直接求出字符串中所有字符的宽度列表。

Java语言的实现:

Java的实现和C语言的实现大体一致,在此不再撰述。

代码如下:

推荐新闻