zoukankan      html  css  js  c++  java
  • 最长公共前缀

    1.题目

    2.我的解答

     方法一:

      思路:

        1.首先判断数组内是否有内容没有直接抛出

        2.设置一个变量存储要输出的的公共前缀

        3.这里我是将数组第一个变量进行提取出来做为对比基准(实际应该提取数组中最短的最佳)

        4.设置一个临时变量用于计算时候对比完一次,若没直接抛出

        5.循环对比数组

     

    /**
     * @param {string[]} strs
     * @return {string}
     */
    var longestCommonPrefix = function(strs) {
        
        if(strs.length<1) return "" ;
        
        let q = "";
        
        for(let i=0;i<strs[0].length;i++){
            
            let tag = 1
    
            for(let j=1;j<strs.length;j++){
                
                if(strs[0][i] === strs[j][i]){
                    tag++;
                }else{
                    return q;
                }
                
            }
            
            if(tag == strs.length) q += strs[0][i];
            
        }
        
        return q 
           
        
    };

     方法二:

      2019/6/12补

      这是对方法一的优化,在这里将舍弃一些不必要的判断和减少不必要的中间变量,以减少空间复杂度

    /**
     * @param {string[]} strs
     * @return {string}
     */
    var longestCommonPrefix = function(strs) {
        
        if(strs.length<1) return "" ;
        
        var q = "";
        
        for(let i=0;i<strs[0].length;i++){
            
            for(let j=1;j<strs.length;j++){
                
                if(strs[0][i] !== strs[j][i]){
                    return q;
                }
                
            }
            
            q += strs[0][i];
            
        }
        
        return q 
           
        
    };
  • 相关阅读:
    线程操作共享变量的一点分享。
    C调用栈重温
    8051汇编命令记录。
    没事写个散列玩~
    Ubuntu切换root用户权限
    CEdit自动换行和状态栏添加
    基于原始套接字的嗅探器
    Windows录音API学习笔记
    Windows内存管理
    C语言中tm结构体
  • 原文地址:https://www.cnblogs.com/jjq-exchange/p/11002487.html
Copyright © 2011-2022 走看看