博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LinkCode-最长单词
阅读量:4155 次
发布时间:2019-05-25

本文共 941 字,大约阅读时间需要 3 分钟。

最长单词

给一个词典,找出其中所有最长的单词。

样例

在词典

{  "dog",  "google",  "facebook",  "internationalization",  "blabla"}

中, 最长的单词集合为 ["internationalization"]

在词典

{  "like",  "love",  "hate",  "yes"}

中,最长的单词集合为 ["like", "love", "hate"]

挑战

遍历两次的办法很容易想到,如果只遍历一次你有没有什么好办法?

问题分析:

1.第一个暴力遍历就是先遍历一次找到最大长度,然后第二次遍历找最大长度的所有单词.

2.为了只遍历一次,这里运用贪新算法的思想,找到当前的遍历过的最大长度单词,并将等长的单词存入,一旦发现更长的单词,把容器清空,然后继续遍历.

class Solution {    /**     * @param dictionary: an array of strings     * @return: an arraylist of strings     */    ArrayList
longestWords(String[] dictionary) { ArrayList
list = new ArrayList
(); if(dictionary==null){ return null; }else{ int len=0; for (int i = 0; i < dictionary.length; i++) { if(dictionary[i].length()>len){ list.clear(); list.add(dictionary[i]); len=dictionary[i].length(); continue; } if(dictionary[i].length()==len){ list.add(dictionary[i]); } } } return list; }};

转载地址:http://vvwxi.baihongyu.com/

你可能感兴趣的文章
JavaScript substring() 方法
查看>>
HTML 5 新的表单元素 datalist keygen output
查看>>
(转载)正确理解cookie和session机制原理
查看>>
jQuery ajax - ajax() 方法
查看>>
将有序数组转换为平衡二叉搜索树
查看>>
最长递增子序列
查看>>
从一列数中筛除尽可能少的数,使得从左往右看这些数是从小到大再从大到小...
查看>>
判断一个整数是否是回文数
查看>>
腾讯的一道面试题—不用除法求数字乘积
查看>>
素数算法
查看>>
java多线程环境单例模式实现详解
查看>>
将一个数插入到有序的数列中,插入后的数列仍然有序
查看>>
在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found
查看>>
阿里p8程序员四年提交6000次代码的确有功,但一次错误让人唏嘘!
查看>>
一道技术问题引起的遐想,最后得出结论技术的本质是多么的朴实!
查看>>
985硕士:非科班自学编程感觉还不如培训班出来的,硕士白读了?
查看>>
你准备写代码到多少岁?程序员们是这么回答的!
查看>>
码农:和产品对一天需求,产品经理的需求是对完了,可我代码呢?
查看>>
程序员过年回家该怎么给亲戚朋友解释自己的职业?
查看>>
技术架构师的日常工作是什么?网友:搭框架,写公共方法?
查看>>