zoukankan      html  css  js  c++  java
  • 243. Shortest Word Distance 最短的单词index之差

    [抄题]:

    Given a list of words and two words word1 and word2, return the shortest distance between these two words in the list.

    For example,
    Assume that words = ["practice", "makes", "perfect", "coding", "makes"].

    Given word1 = “coding”word2 = “practice”, return 3.
    Given word1 = "makes"word2 = "coding", return 1.

     [暴力解法]:

    时间分析:

    空间分析:

     [优化后]:

    时间分析:

    空间分析:

    [奇葩输出条件]:

    [奇葩corner case]:

    [思维问题]:

    不知道用什么数据结构指定index

    [一句话思路]:

    指定index只需要成-1然后遍历就行

    [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

    [画图]:

    [一刷]:

    1. 头一次见:必须在p1 p2都摆脱初始值-1的时候,才能比较,否则一直为0

    [二刷]:

    [三刷]:

    [四刷]:

    [五刷]:

      [五分钟肉眼debug的结果]:

    [总结]:

    必须在p1 p2都摆脱初始值-1的时候,才能比较,否则一直为0

    [复杂度]:Time complexity: O(n) Space complexity: O(1)

    [英文数据结构或算法,为什么不用别的数据结构或算法]:

    字符串判断相等用的是equals,你没记错

    [关键模板化代码]:

    [其他解法]:

    [Follow Up]:

    244. Shortest Word Distance II 多次调用:hashmap多次取

    3:可重复:用数学

    [LC给出的题目变变变]:

     [代码风格] :

    class Solution {
        public int shortestDistance(String[] words, String word1, String word2) {
            //cc
            if (words == null || words.length == 0) {
                return 0;
            }
            
            //ini
            int p1 = -1, p2 = -1, min = Integer.MAX_VALUE;
            
            //for loop, renew p1 p2, compare
            for (int i = 0; i < words.length; i++) {
                if (words[i].equals(word1)) {
                    p1 = i;
                }
                
                if (words[i].equals(word2)) {
                    p2 = i;
                }
                
                if (p1 != -1 && p2 != -1) {
                    min = Math.min(min, Math.abs(p2 - p1));
                }
            }
    
            //return
            return min;
        }
    }
    View Code
  • 相关阅读:
    安装wampserver2时出现的问题
    微信相关信息
    YII CDbCriteria总结
    discuz@功能的代码
    音乐搜索并生成播放功能
    php生成json和js解析json
    Discuz!提取文章标签
    ⑦ vue项目结构study
    ⑤ elementui 使用字符填充table空白表格项
    ④ keep-alive缓存组件,操作之后需要重新获取数据--activated
  • 原文地址:https://www.cnblogs.com/immiao0319/p/8898076.html
Copyright © 2011-2022 走看看