精华内容
下载资源
问答
  • leetcode链接 ***算法:纵向扫描*** char * longestCommonPrefix(char ** strs, int strsSize){ if(strsSize==0) return ""; for(int i=0;i<strlen(strs[0]);++i){ for(int j=1;j<strsSize;++j){ if...

    最长公共前缀

    leetcode原题链接

    ***算法:纵向扫描***
    char * longestCommonPrefix(char ** strs, int strsSize){
        if(strsSize==0) return "";
        for(int i=0;i<strlen(strs[0]);++i){
            for(int j=1;j<strsSize;++j){
                if(strs[j][i]!=strs[0][i]){
                    strs[0][i]='\0';
                    break;
                }
            }
        }
        return strs[0];
    }
    
    ***算法:横向扫描***
    char * longestCommonPrefix(char ** strs, int strsSize){
        //特殊情况
        if(strsSize==0) return "";
        if(strsSize==1) return strs[0];
        //查找前两个字符串公共前缀
        for(int i=0;i<strlen(strs[0]);++i){
            if(strs[0][i]!=strs[1][i]){
                strs[0][i]='\0';
                break;
            }
        }
        //前两个的公共前缀与剩下的字符串比较
        for(int j=2;j<strsSize;++j){
            if(strs[j][0]=='\0') return "";//只要有一个空的字符串,就不可能有公共前缀
            for(int m=0;;m++){
                if(strs[j][m]!=strs[0][m]||strs[j][m]=='\0'){
                    strs[0][m]='\0';
                    break;
                }
            }
        }
        return strs[0];
    }
    
    
    展开全文
  • LeetCode 14题 最长公共前缀 -- JavaScript

    千次阅读 2018-07-15 21:28:55
    本篇文章利用JavaScript来求解LeetCode14题:最长公共前缀(Longest Common Prefix)。 编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串 ""。并且我们假设:所有输入...

    题目描述:

    编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串 ""。并且我们假设:

    • 所有输入只包含小写字母 a-z 
    • 需考虑数组为空的情况。

    示例:

    输入: ["flower","flow","flight"]
    输出: "fl"
    输入: ["dog","racecar","car"]
    输出: ""
    输入: ["java","javascript","json"]
    输出: "j"

    方法分析:

    在分析此类问题,我们的思路应该大致如下:

    • 如果字符串数组为空,我们就直接返回一个空字符串。
    • 如果字符串数组只有一项,如["java"],那么就直接返回该字符串即可。
    • 如果字符串数组有多项,我们可以先取得第一项,然后再依次将第一项字符串的每个字符与后面每一个字符串的相应位置的字符进行比较;如果有不同,就不再进行后续判断,而是直接返回结果即可;如果在这一轮迭代中相应位置的字符相同,则记录下来。

    下面我们以 ["flower","flow","flight"] 为例,图解执行过程:

    蓝色线表示第一次循环比较,找到相同的“f”并记录下来;红色线表示第二次循环比较,找到相同的“l”并记录下来;黄色线表示第三次循环比较,因为“flight”中的“i”不等于“flower”中的“o”,故终止循环并返回“fl”。

    代码实现:

    var longestCommonPrefix = function(strs) {
       var firstStrs = strs[0];
       var result ='';
       if(!strs.length){
           return result;
       }
       for (var i = 0; i < firstStrs.length; i++) {
           for (var j =  1; j < strs.length; j++) {
               if(firstStrs[i] != strs[j][i]){
                   return result;
               }
            }
            result += firstStrs[i];
        }
        return result;
     };

    代码解析:

    该代码通过两层循环来得到最终内容,每一次外层循环都可以得到一个相同的字符串(如果有的话)。

    该算法的时间复杂度为\small O(n^{2}),空间复杂度为O(1)

    相关链接:https://leetcode-cn.com/problems/longest-common-prefix/description/

    展开全文
  • 题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例1: 输入:[“flower”, “flow”, “flight”] 输出:“fl” 示例2: 输入:[“dog”, “racecar”, “car...

    题目描述

    编写一个函数来查找字符串数组中的最长公共前缀。

    如果不存在公共前缀,返回空字符串 “”。

    示例1:
    输入:[“flower”, “flow”, “flight”]
    输出:“fl”
    示例2:
    输入:[“dog”, “racecar”, “car”]
    输出:" "

    说明:所有输入只包含小写字母a-z。

    代码

    class Solution:
        def longestCommonPrefix(self, strs: List[str]) -> str:
            if not strs:
                return ""
            
            length, count = len(strs[0]), len(strs)
            for i in range(length):
                c = strs[0][i]
                if any(i == len(strs[j]) or strs[j][i] != c for j in range(1, count)):
                    return strs[0][:i]
            
            return strs[0]
    
    展开全文
  • LeetCode 面试题14- I. 剪绳子 中等 题目:LeetCode 面试题14- I. 剪绳子 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。...

    LeetCode 面试题14- I. 剪绳子

    中等

    • 题目:LeetCode 面试题14- I. 剪绳子
      给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。
      注意:2 <= n <= 58。

    • 示例

    输入: 2
    输出: 1
    解释: 2 = 1 + 1, 1 × 1 = 1

    输入: 10
    输出: 36
    解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36

    • 方法:动态规划或者数学方法。
    • cpp代码实现
    class Solution
    {
    	public:
    	 int cuttingRope(int n)
    	 {
    	 	vector<int>dp(n + 1);
    	 	dp[1] = 1;
    	 	for(int i = 2; i <= n; ++i)
    	 	{
    	 		for(int j = 1; j < i; ++j)
    	 			dp[i] = max(dp[i], max(dp[i - j] * j, (i - j) * j));
    	 	}
    	 	return dp[n];
    	 }
    };
    

    LeetCode 面试题14- II. 剪绳子 II

    中等

    • 题目:给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m] 。请问 k[0]k[1]…*k[m] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。
      答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。
      注意:2 <= n <= 1000( I 和 II 不同之处)。

    • 示例

    输入: 2
    输出: 1
    解释: 2 = 1 + 1, 1 × 1 = 1

    输入: 10
    输出: 36
    解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36

    • 方法:数学规律(最优3)。
    • cpp代码实现
    class Solution
    {
    	public:
    		int cuttingRope(int n) 
    		{
    			if(n == 2)
    				return 1;
    			if(n == 3)
    				return 2;
    			int mod = 1000000007;
    			long long res = 1;
    			while(n > 4)
    			{
    				res *= 3;
    				res %= mod;
    				n -= 3;
    			}
    			res *= n;
    			res %= mod;
    			return (int)res;
    		}
    };
    

    LeetCode 面试题35.复杂链表的复制

    中等

    • 题目:请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。

    • 示例

    输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]
    输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]

    • 方法:第一步,完成链表的复制(包括节点的复制和随机指针的复制);第二步,将链表一分为二即可。
      (1->2->3 转化为 1->1->2->2->3->3 再拆分)
    • cpp代码实现
    class Solution
    {
    	public:
    	Node* copyRandomList(Node* head) 
    	{
    		if(head == NULL)
    			return head;
    		Node* cur = head;
    		//节点的复制
    		while(cur != NULL)
    		{
    			Node* copyNode = new Node(cur->val);
    			copyNode->next = cur->next;
    			cur->next = copyNode;
    			cur = cur->next->next;
    		}
    		cur = head;
    		//复制节点的随即指针的复制
    		while(cur != NULL)
    		{
    			if(cur->random != NULL)
    				cur->next->random = cur->random->next;
    			cur = cur->next->next;
    		}
    		Node* copyHead = head->next;
    		cur = head;
    		Node* copyCur = head->next;
    		//将链表一分为二
    		while(cur != NULL)
    		{
    			cur->next = cur->next->next;
    			cur = cur->next;
    			if(copyCur->next != NULL)
    			{
    				copyCur->next = copyCur->next->next;
    				copyCur = copyCur->next;
    			}
    		}
    		return copyHead;
    	}
    };
    

    写在最后
    大家,学习的时候千万不要想太多,容易失眠,太影响学习的状态了。和朋友聊了两句,然后我的大脑开始膨胀,中午躺了一个小时都没有睡着,我太难了···········学校明天又是一批返校的,反正不是我,我也不知道自己啥时候能返校,我也不敢问呢~~~~~~~~~~

    展开全文
  • leetcode 答案leetcode leetcode 每日 2 个问题的问题和答案。
  • LeetCode 700 题解答案集合 Python

    万次阅读 多人点赞 2019-03-27 21:24:58
    2019.5.12更新至题号796,目前共有265。 2019.5.26更新至题号72, 目前共有347。 2019.6.16更新至题号70,目前共有382。 2019.7.7更新至题号5120,目前共有442。 2019.8.5更新至题号1147,目前共有502...
  • Day14 合并两个有序数组 Day15 寻找旋转排序数组中的最小值 Day16 按奇偶排序数组 Day17 删除链表的倒数第N个节点 Day18 另一个树的子树 Day19 删除排序链表中的重复元素 II Day20 正则表达式匹配 Day21 对称二叉树 ...
  • leetcode 530 力扣解决方案 这个自述文件是由 更新时间:2019 年 4 月 14 日星期日 13:03:45 状态:452/977 简单:221/270 介质:203/496 硬:27/211 解决方案表 # 标题 困难 解决方案 204 简单的 959 中等的 515 ...
  • 练习的解决方案。 # 问题标题 / LeetCode 链接 解决方案 困难 标签 1 简单的 array hash table 2 中等的 linked list math 3 中等的 hash table 5 中等的 two pointers 6 中等的 string 7 简单的 math 8 中等的 ...
  • Leetcode记录 目前先从简单的开始做,慢慢提升 :) 已完成: 面试 05.06. 整数转换 1 两数之和 3 无重复字符的最长子串 5 最长回文子串 7 整数反转 8 字符串转换整数 (atoi) 9 回文数 14 最长公共前缀 19 删除...
  • leetcode 338 LeetCode 成绩表 编号 难度 题目 我的解答 执行用时 内存消耗 用时排名 内存排名 ...14 简单 4 ms 8.8 MB 96.42% - 15 中等 224 ms 15.7 MB 36.61% - 16 中等 416 ms 8.4 MB 7.61% - 17
  • 文章目录LeetCode精选之查找表1 两个数组的交集--LeetCode3492 两个数组的交集 II--LeetCode3503 两数之和--LeetCode14 四数相加II--LeetCode454(Medium)5 回旋镖的数量--LeetCode4476 最长连续序列--LeetCode...
  • LeetCode100答案

    2020-06-26 17:49:22
    leetcode100 文章目录leetcode100[2. 两数相加](https://leetcode-cn.com/problems/add-two-numbers/)[3. 无重复字符的最长子串]...
  • 14:13:55,我大概做了剑指offer上所有的,应该有66道题目和他们的变体,一共80道左右。后来leecode又做了一些题目,目前为止一共也做了66道,从正式开始刷题到现在一共大概140道。刚开始做这些题目的时候,...
  • 算法练习,数字开头为leetcode上的,extra开头为其他地方的算法 带文件夹的是题目或解法有配图 名称后有+++的,为leetcode重点推荐题目 ###leetcode初级算法: 数组: 26.删除排序数组中的重复项 122.买卖股票...
  • LeetCode精选之数学

    2020-08-19 21:22:33
    文章目录LeetCode精选之数学1 计数质数--LeetCode2042 七进制数--LeetCode5043 数字转换为十六进制数--LeetCode4054 Excel表列名称--LeetCode1685 阶乘后的零--LeetCode1726 二进制求和--LeetCode677 字符串相加--...
  • 算法 python 实现 题号:名称 1.两数之和 10.正则表达式匹配 102.二叉树的层序遍历 104.二叉树的最大深度 105.从前序与中序遍历序列构造二叉树 1091.二进制矩阵中的最短路径 11.盛最多水的容器 111.二叉树的最小...
  • LeetCode精选之树

    2020-05-22 20:24:20
    文章目录LeetCode精选之树递归解题1 二叉树的最大深度--LeetCode1042 平衡二叉树--LeetCode1103 二叉树的直径--LeetCode5434 翻转二叉树--LeetCode2265 合并二叉树--LeetCode6176 路径总和--LeetCode1127 路径总和...
  • leetcode中国Leetcode 问题列表 基本有用的Easy级算法列表: 461 - [ 1 ] 汉明距离 - 06/07 561 - [ 2 ] 阵列分区 I - 06/07 476 - [ 3 ] 数字补码 - 06/07 557 - [ 4 ] 反转字符串中的单词 III - 06/08。 500 - ...
  • 其实有些思路算法挺有意思的,决定开始刷刷leetcode,先从简单的开始吧!非最优解,仅记录分享 6.16 /** * @param {number[]} nums * @param {number} target * @return {number[]} */ var twoSum = ...
  • 文章目录LeetCode精选之排序、分治排序1 数组中的第K个最大元素--LeetCode215(Medium)2 前 K 个高频元素--LeetCode347(Medium)3 根据字符出现频率排序--LeetCode451(Medium)4 颜色分类--LeetCode75(Medium...
  • LeetCode高频

    2019-08-13 20:25:22
    1.搜索矩阵(LeetCode240) 具体:编写一个高效的算法来搜索mxn矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例:现有矩阵 matrix 如下:...
  • LeetCode5014

    2021-01-25 13:34:54
    LeetCode第215: 数组中的第K个最大元素 先排序, 再寻找 class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: nums.sort() i = len(nums) - 1 while k > 1: i -= 1 k -= 1 ...
  • 其中./other/examination文件下记录了笔者所遇到的一些笔试,有部分题目不完整,后续会继续完善。 所有题目的名称全部列在了leetCode/README.md文件中,方便全局检索(Ctrl+F). 1.两数之和 2.两数相加 3.无重复...
  • Go语言完成leetcode前400... 1-100 题号 题目 解答 1 两数之和 2 两数相加 3 无重复字符的最大子串 5 最长回文子串 9 回文数 12 整数转罗马数字 13 罗马数字转整数 14 最长公共前缀 20 有效的括号 26 删除排序数组...
  • leetcode简单第一python3 题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复...
  • leetcode 18 ...14 简单的 15 中等的 16 中等的 17 中等的 18 中等的 19 中等的 20 中等的 21 中等的 22 中等的 23 中等的 24 中等的 25 中等的 26 中等的 27 简单的 28 简单的 29 简单的 30 简单的
  • 文章目录LeetCode精选之数组和矩阵1 移动零--LeetCode2832 重塑矩阵--LeetCode5663 最大连续1的个数--LeetCode4854 搜索二维矩阵 II--LeetCode240(Medium)5 有序矩阵中第K小的元素--LeetCode378(Medium)6 错误...
  • 力扣(leetcode).14

    2019-10-26 22:06:22
    力扣(leetcode)14.最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例 2: 输入: [“dog”,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,782
精华内容 8,312
关键字:

leetcode14题