【LeetCode】3月28日打卡-Day13

题1 单词的压缩编码

描述

给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A。
例如,如果这个列表是 [“time”, “me”, “bell”],我们就可以将其表示为 S = “time#bell#” 和 indexes = [0, 2, 5]。
对于每一个索引,我们可以通过从字符串 S 中索引的位置开始读取字符串,直到 “#” 结束,来恢复我们之前的单词列表。
那么成功对给定单词列表进行编码的最小字符串长度是多少呢?
示例:输入: words = [“time”, “me”, “bell”]
输出: 10
说明: S = “time#bell#” , indexes = [0, 2, 5] 。
提示:
1 <= words.length <= 2000
1 <= words[i].length <= 7
每个单词都是小写字母 。

题解

思路:如果单词集合中存在一个单词是另一个单词的后缀则这个单词被压缩,不计入最后的长度计算,相当于我们需要做的是:1.创建集合给原单词集合去重,2.删除原单词集合中的后缀单词,3.统计单词长度和,每个单词后面还有#,需要加一。
定义集合
Set<String> myset = new HashSet(Arrays.asList(words))

class Solution {public int minimumLengthEncoding(String[] words) {Set <String> mySet = new HashSet(Arrays.asList(words));for(String word: words){for(int k = 1; k < word.length(); k++){mySet.remove(word.substring(k));}}int ans = 0;for(String word: mySet){ans += word.length() + 1;}return ans;}
}

题2 最后一个单词的长度

描述

给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。
示例:
输入: “Hello World”
输出: 5

题解1

思路:思路简单,通过修用例bug实现,首先把字符串最后一个单词后的所有空格去掉,然后根据空格来截取最后一个单词的长度。
速度很慢内存占用高
执行用时 :2 ms, 在所有 Java 提交中击败了17.69%的用户
内存消耗 :37.9 MB, 在所有 Java 提交中击败了5.06%的用户

class Solution {public int lengthOfLastWord(String s) {int count = 0;int len = s.length();if(len == 0){return 0;}int space = 0;for(int i = len - 1; i >= 0; i--){if(s.charAt(i) == ' '){++space;}else{break;}}System.out.println(space);if(space > 0){len = len - space;}System.out.println(len);for(int i = len - 1; i >= 0; i--){if(s.charAt(i) != ' '){count++;}else{break;}}return count;}
}

题解2

思路一致:速度提升
执行用时 :0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗 :37.9 MB, 在所有 Java 提交中击败了5.06%的用户

class Solution {public int lengthOfLastWord(String s) {int end = s.length() - 1;while(end >= 0 && s.charAt(end) == ' ') end--;if(end < 0) return 0;int start = end;while(start >= 0 && s.charAt(start) != ' ') start--;return end - start;}
}

题3 二进制求和

描述

给定两个二进制字符串,返回他们的和(用二进制表示)。
输入为非空字符串且只包含数字 1 和 0。
示例 1:
输入: a = “11”, b = “1”
输出: “100”
示例 2:
输入: a = “1010”, b = “1011”
输出: “10101”

题解 逐位求和

思路:大值用来控制外层循环,小值用来控制内层循环,始终让大值位于第一个参数,如果不符合,用return 交换一次参数位置。
carry用来保存进位值,如果carry=2 则要进位 当前位置为0 否则为1,进位之后carry/2=1用于下一步进位值计算。
时耗和内存都不佳,勉强算做出来

class Solution {public String addBinary(String a, String b) {int alen = a.length();int blen = b.length();if(blen > alen){return addBinary(b, a);}int L = Math.max(alen,blen);StringBuilder sb = new StringBuilder();int carry = 0; int j = blen-1;for(int i = L - 1; i >= 0; --i){if(a.charAt(i) == '1') ++carry;if(j >= 0 && b.charAt(j--) == '1') ++carry;if(carry % 2 == 0) sb.append('0');else sb.append('1');carry /= 2;}if(carry == 1) sb.append('1');sb.reverse();return sb.toString();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/481051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

训练效率低?GPU利用率上不去?快来看看别人家的tricks吧~

前言首先&#xff0c;如果你现在已经很熟悉tf.dataestimator了&#xff0c;可以把文章x掉了╮(&#xffe3;▽&#xffe3;””)╭但是&#xff01;如果现在还是在进行session.run(..)的话&#xff01;尤其是苦恼于GPU显存都塞满了利用率却上不去的童鞋&#xff0c;这篇文章或许…

科普 | 典型的知识库/链接数据/知识图谱项目

从人工智能的概念被提出开始&#xff0c;构建大规模的知识库一直都是人工智能、自然语言理解等领域的核心任务之一。下面首先分别介绍了早期的知识库项目和以互联网为基础构建的新一代知识库项目。并单独介绍了典型的中文知识图谱项目。 1. 早期的知识库项目 Cyc : Cyc 是持续…

【TensorFlow】优化方法optimizer总结(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)解析(十三)

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/brucewong0516/article/details/78838124 本文仅对一些常见的优化方法进行直观介绍和简单的比较&#xff0c;主要是一阶的梯度法&#xff0c;包括SGD, Momentum, Nesterov M…

【LeetCode】3月29日打卡-Day14-BFS

题1 地图分析 描述 你现在手里有一份大小为 N x N 的『地图』&#xff08;网格&#xff09; grid&#xff0c;上面的每个『区域』&#xff08;单元格&#xff09;都用 0 和 1 标记好了。其中 0 代表海洋&#xff0c;1 代表陆地&#xff0c;你知道距离陆地区域最远的海洋区域是…

技术论坛 | CCF YOCSEF上海即将在 CNCC 举办“知识图谱遇见社交媒体”专题论坛

中国计算机学会青年计算机科技论坛 CCF YoungComputer Scientists & Engineers Forum CCF YOCSEF上海 CNCC2017大会技术论坛 主题: 知识图谱遇见社交媒体 时间&#xff1a;2017年10月26日&#xff08;星期四&#xff09;13:30~17:30 地点&#xff1a;福州海峡国际会展中心会…

你确定自己不是那只猫吗

成为猫与养猫小的时候&#xff0c;小夕曾被告知兔子可爱是因为喜欢吃萝卜&#xff0c;导致小夕吃了好多萝北。上学后&#xff0c;会哄着小夕学习的就是好老师&#xff0c;强行让小夕背书的肯定是坏老师。找工作时&#xff0c;HR会给小夕画大饼&#xff0c;让小夕觉得自己即将去…

一文搞懂HMM(隐马尔可夫模型)-Viterbi algorithm

***一文搞懂HMM&#xff08;隐马尔可夫模型&#xff09;***简单来说&#xff0c;熵是表示物质系统状态的一种度量&#xff0c;用它老表征系统的无序程度。熵越大&#xff0c;系统越无序&#xff0c;意味着系统结构和运动的不确定和无规则&#xff1b;反之&#xff0c;&#xff…

文本分类有哪些论文中很少提及却对性能有重要影响的tricks?

前言一年前小夕在知乎上提问过这么一个问题文本分类有哪些论文中很少提及却对性能有重要影响的tricks&#xff1f;链接&#xff1a;https://www.zhihu.com/question/265357659/answer/578944550当时正好在刷一个比较有趣的task&#xff0c;结果发现奇奇怪怪的tricks可以带来不少…

课程 |《知识图谱》第一期

课程详情 课程名称: 《知识图谱》第一期 报名方式&#xff1a; 点击文末“阅读原文”&#xff0c;即可享受参团优惠报名哦&#xff01; 主讲老师&#xff1a; 王昊奋 著名知识图谱专家 博士毕业于上海交通大学&#xff0c;CCF术语专委会执委&#xff0c;中文信息学会语言与…

【LeetCode】3月30日打卡-Day15

题1 描述 0,1,n-1这n个数字排成一个圆圈&#xff0c;从数字0开始&#xff0c;每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 例如&#xff0c;0、1、2、3、4这5个数字组成一个圆圈&#xff0c;从数字0开始每次删除第3个数字&#xff0c;则删除的前4个数…

新闻 | 聚焦技术领域现状与发展阿里巴巴知识图谱专场亮相云栖大会 阿里知识图谱亮相云栖大会产学深度交流推进业务创新

14日&#xff0c;阿里巴巴知识图谱正式亮相云栖大会&#xff0c;本次活动邀请到诸多阿里技术专家与学界领军人物参会&#xff0c;一同探讨知识图谱领域的现状与远景&#xff0c;推动产业界与学术界深度交流。 知识图谱将信息表达成更接近人类认知世界的形式&#xff0c;提供了帮…

100篇论文串讲对话系统前世今生

不可以不可以&#xff0c;都在忙着过年呢&#xff0c;小夕怎么能推这种文章呢╮(╯▽╰)╭话说&#xff0c;大年初一你萌怎么能戳进来这种文章&#xff01;快&#xff0c;赶紧承认你是卖萌屋的真爱粉(&#xffe3;∇&#xffe3;)&#xff5e;小屋今天不卖干货&#xff0c;只送…

【LeetCode】3月31日打卡-Day16-数组排序算法汇总

排序算法一览 快排 插入排序 希尔排序 桶排序 计数排序 归并排序 桶排序 class Solution {public int[] sortArray(int[] nums) {if(nums.length <1)return nums;qSort(nums,0,nums.length-1);selectSort(nums);insertSort(nums);shellSort(nums);bucketSort(nums);countS…

如何打造高质量的NLP数据集

今天发烧睡了一天T^T&#xff0c;睡醒后突然想起这个都快凉透的订阅号&#xff0c;刷了刷知乎&#xff0c;刷到了这个问题知乎&#xff1a;如何打造高质量的机器学习数据集&#xff1f; https://www.zhihu.com/question/333074061/answer/773825458于是就有了暖暖卖萌屋的冲动(…

郑杰 | 如何拿回我们自己的医疗数据?

本文转载自公众号造就&#xff0c;作者郑杰&#xff0c;树兰医疗总裁&#xff0c;OMAHA 开放医疗与健康联盟发起人。 造就 大家好&#xff0c;我是郑杰&#xff0c;来自于杭州。我出生于一个医生世家&#xff0c;也在医院边上长大&#xff0c;但大学里我读的是计算机专业&#…

【Java】Object类、Objects类和日期类

1 Object类 Object类是所有类的父类&#xff0c;每个类都直接或间接的继承自该类 1.1 Object.toString() 作用&#xff1a;打印输出类信息 重写前&#xff1a;打印输出包名类名地址值 重写后&#xff1a;打印输出属性值 1.2 Object.equals() 作用&#xff1a;比较两个对象…

问题对语义相似度计算-参赛总结

时间段&#xff1a;2018.06.10~2018.07.20问题对语义相似度计算&#xff08;从0到0.5&#xff09; 短短一个多月的时间&#xff0c;我学到了很多很多东西&#xff0c;从一个呆头小白初长成人。首先&#xff0c;必须感谢我的导师能给我这个机会从头到尾完整地参加这次比赛&#…

后BERT时代:15个预训练模型对比分析与关键点探究

前言在小夕之前写过的《NLP的游戏规则从此改写&#xff1f;从word2vec, ELMo到BERT》一文中&#xff0c;介绍了从word2vec到ELMo再到BERT的发展路径。而在BERT出现之后的这大半年的时间里&#xff0c;模型预训练的方法又被Google、Facebook、微软、百度、OpenAI等极少数几个玩得…