Leetcode面试经典150题-14.最长公共前缀

news2024/11/11 9:37:20

解法都在代码里,不懂就留言或者私信

这个题比较简单,基本上是笔试的第一第二题

class Solution {
    /**最长公共前缀这种问题个人感觉最重要的是剪枝
    我理解可以先按照字符串的长度排个序,然后把第一个字符串的长度作为暂时的最长公共前缀的长度*/
    public String longestCommonPrefix(String[] strs) {
        /**先按照长度从小到大排序,这一步不是必要的 */
        Arrays.sort(strs, (a,b)->a.length() - b.length());
        /**暂时把最大长度确定为第一个字符串(最短的字符串)的长度 */
        int longestCommonPrefix = strs[0].length();
        /**从第二个字符串开始遍历,通过和前一个字符串比较确定当前的最大长度是多少 */
        for(int i = 1; i < strs.length; i++) {
            for(int index = 0; index < longestCommonPrefix; index++) {
                /**出现第一个不一样的字符的时候停止比较,长度就是当前比较的位置(因为下标从0开始)*/
                if(strs[i].charAt(index) != strs[i-1].charAt(index)) {
                    longestCommonPrefix = index;
                    break;
                }
            }
            /**如果最长公共前缀的长度已经为0了,直接返回空字符串 */
            if(longestCommonPrefix == 0) {
                return "";
            }
        }
        /**如果公共前缀不为0,返回公共前缀 */
        return strs[0].substring(0, longestCommonPrefix);
    }
}

运行结果,感觉是我排序造成了时间比较长,或者leetcode的惰性逻辑,因为我每次提交都一样,丝毫不差,这不太可能

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

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

相关文章

分享一个基于python爬虫的“今日头条”新闻数据分析可视化系统(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

【装修】出租屋改造计划,米家IoT全屋智能家居方案 投影仪与家庭ktv游戏影院方案

【装修】出租屋改造计划&#xff0c;米家IoT全屋智能家居方案 & 投影仪与家庭ktv游戏影院方案 文章目录 1、目标效果 & 预算2、网络&#xff1a;路由 & 中枢网关方案3、卧室&#xff1a;灯光系列 & 环境系列4、米家&#xff1a;其他房间&#xff08;暂不装&…

C++ 内存布局 - Part2: 从内存布局角度看类型转换 static_cast, dynamic_cast, reinterpret_cast

0. 总论 开门见山&#xff0c;先把结论写在这里&#xff1a; 1&#xff09;static_cast 在做基类指针和派生类指针之间的转换时&#xff0c;会根据编译时的静态偏移操作指针&#xff0c;但是没有运行期的类型安全检查&#xff0c;程序员需要自己确保类型的正确性&#xff0c;…

ollama轻松部署本地GraphRAG(避雷篇)

本篇文章主要介绍如何使用ollama本地部署微软的Graph RAG&#xff0c;&#xff0c;Graph RAG成为RAG一种新范式&#xff0c;对于全局总结性问题表现突出&#xff0c;当开始的技术路线是Qwen2vllmfastchat本地部署Grapg RAG&#xff0c;但是embedding 的openai服务怎么都跑不起来…

完整搭建windows下mysql8.0源码编译调试环境!

背景&#xff1a; 前段时间一直在看mysql相关的博客&#xff0c;所以对源码起了浓厚的兴趣&#xff0c;所以尝试通过vmware和vscode在windosw环境中搭建一套编译调试的环境~ 看了一下网上的搭建教程基本杂乱无章&#xff0c;想要从零跟着搭建出一个完善的调试环境也不是易事&…

redis I/O复用机制

I/O复用模型 传统阻塞I/O模型 串行化处理&#xff0c;就是要等&#xff0c;假如进行到accept操作&#xff0c;cpu需要等待客户端发送的数据到tcp接收缓冲区才能进行read操作&#xff0c;而在此期间cpu不能执行任何操作。 I/O复用 用一个进程监听大量连接&#xff0c;当某个连…

国产大模型领域跳槽:收入潜力解析

夏尽秋来&#xff0c;2024年国产大模型看似喧闹已止&#xff0c;进入稳定竞争期。 作为一种新的IT解决方案&#xff0c;国产大模型一出生便伴随着激烈竞争。 外有GPT4&#xff0c;内有多家公司角逐“中国版ChatGPT”。 据我所知&#xff0c;就国内某家头部大模型创业公司的收…

0817(持久层框架:JDBC,MyBatis)

三层架构&#xff08;表现层&#xff0c;业务层&#xff0c;持久层&#xff09; java中框架的概述&#xff08;表现层、业务层、持久层的关系&#xff09;_控制层业务层持久层的关系-CSDN博客 框架&#xff1a;框架一般处在低层应用平台&#xff08;如J2EE&#xff09;和高层…

利用keepalived达成服务高可用

官方网站Keepalived for Linux 1.keepalived简介 vrrp 协议的软件实现&#xff0c;原生设计目的为了 高可用 ipvs 服务 功能&#xff1a; 基于 vrrp 协议完成地址流动 为 vip 地址所在的节点生成 ipvs 规则 ( 在配置文件中预先定义 ) 为 ipvs 集群的各 RS 做健康状态检测 …

【Linux网络】NAT技术

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 引言 随着互联网的飞速发展&#xff0c;IP地址资源日益紧张&#xff0c;这促使了NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;技术的诞生与发展。NAT技术不仅解决了IPv4…

webshell免杀--免杀入门

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文主要整理webshell免杀的一些基础思路 入门级&#xff0c;不是很深入&#xff0c;主要是整理相关概念 免杀对象 1.各类杀毒软件 类似360&#xff0c;火绒等&#xff0c;查杀己方webshell的软件。 2.各类流量…

计算机网络系统速成

Http与Https Http与Https是两种重要的网络通信协议&#xff0c;它们在Web通信中扮演着关键角色。以下是对Http与Https的详细解析&#xff1a; 一、Http&#xff08;超文本传输协议&#xff09; 1. 定义与功能 定义&#xff1a;Http&#xff08;HyperText Transfer Protocol…

打卡学习Python爬虫第三天|电影天堂案例

一、明确需求 目标&#xff1a;爬取最新更新的电影的豆瓣链接 观察网页和页面源代码&#xff0c;每部电影都有一个超链接去到子页面&#xff0c;我们需要的内容在子页面&#xff0c;如果我们一个一个子页面的去爬取会比较麻烦&#xff0c;可以尝试先通过首页爬取子页面的超链…

指针初阶(指针类型转换的使用、指针数组)

一.指针基础 0.指针的大小 指针指向的是一块地址&#xff0c;所以指针存储的是地址&#xff0c;例如在32位系统中。定义了一个int32_t类型的变量。使用int32_t *定义一个指针&#xff0c;使其指向该变量。 设该变量存储在地址为00000000000000000000000000000001&#xff08;3…

远程调用-OpenFeign(一)

目录 1.RestTemplate存在问题 2.OpenFeign介绍 一、主要特点 二、应用场景 3.OpenFeign快速上手 3.1引入依赖 3.2添加注解 3.3编写OpenFeign的客户端 3.4远程调用 ​编辑3.5测试 4.OpenFeign参数传递 4.1传递单个参数 4.2传递多个参数 4.3传递对象 4.4传递JSO…

编程修炼之Hibernate--- springboot启动初始化ddl过程

文章目录 跟踪Springboot整合hibernate的启动代码&#xff1a; 开始初始化 entityManagerFactory 创建方言 dialect 继续排查

Koa商城项目-轮播图模块(后端)

前言 通过这次独自做前后端发现有很多需要提升的地方&#xff0c;很多细节处理不到位。下面简单看一下本人自己做的效果吧~~ Git地址 https://gitee.com/ah-ah-bao/koa_system 效果图 后端逻辑分析 首先编写route->banner.router.js /*** author: zxb* date: 2024-08-06…

Socket编程TCP 基础

一.什么是Socket(套接字&#xff09; 定义&#xff1a;就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端&#xff0c;提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲&#xff0c;套接字上联应用进程&#x…

【文献阅读】A Comprehensive Review of Multimodal Large Language Models

一、回顾 MLLMs 在语言、图像、视频和音频处理等多模态任务中表现出色。这些模型通过整合多模态信息来增强多模态任务的有效性。 在自然语言处理&#xff08;NLP&#xff09;任务中&#xff0c;如文本生成和机器翻译&#xff0c;MLLMs 利用图像、视频和音频提供上下文支持&am…

C#开发实验--卫星星历的计算、空间直角坐标和大地坐标的转换、ArcGIS Engine开发的简单实例

前不久在公众号GIS研发看到了暑假公益C#开发教程&#xff0c;教大家ArcGIS Engine开发。 想到了自己本科阶段也学习了C#开发和AE开发&#xff0c;学习了使用C#添加空间等&#xff0c;进行卫星星历的计算、空间直角坐标和大地坐标的转换、ArcGIS Engine开发的简单实例。 下面的…