Practice4|14. 最长公共前缀、2. 两数相加

14. 最长公共前缀

1.题目:

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

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

示例 1:

输入:strs = ["flower","flow","flight"]
输出:"fl"

示例 2:

输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。

2.思路:

最长公共前缀:横向扫描

结论:查找字符串数组中的最长公共前缀的方法,依次遍历字符串数组中的每个字符串,对于每个遍历到的字符串,更新最长公共前缀,当遍历完所有的字符串以后,即可得到字符串数组中的最长公共前缀。

如果在尚未遍历完所有的字符串时,最长公共前缀已经是空串,则最长公共前缀一定是空串,因此不需要继续遍历剩下的字符串,直接返回空串即可。

取第一个字符依次和后续字符比较,更新最长公共前缀。

3.代码:

public String longestCommonPrefix(String[] strs) {
        String prefix=strs[0];
        for(int i=1;i<strs.length;i++){
            prefix=longestCommonPrefix(prefix,strs[i]);
            if(prefix.length()==0){
                break;
            }
        }
        return prefix;
    }
    public String longestCommonPrefix(String a,String b){
        int length=Math.min(a.length(),b.length());
        int index=0;
        // while(index<length && a.charAt(index)==b.charAt(index)){
        //     index++;
        // }
        for(int i=0;i<length;i++){
            if(a.charAt(i)==b.charAt(i)){
                index++;
            }else{
                break;
            }
        }
        return a.substring(0,index);
    }

2. 两数相加

1.题目:

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例 1:

输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.

2.思路:

要考虑进位(同时添加头指针方便操作)

3.代码:

 public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode pre=new ListNode(0);
        ListNode curr=pre;
        int carry=0;
        while(l1!=null ||l2!=null){
            int x=l1==null ? 0:l1.val;
            int y=l2==null ? 0:l2.val;
            int sum=x+y+carry;
            carry=sum/10;
            sum=sum%10;
            curr.next=new ListNode(sum);
            curr=curr.next;
            if(l1!=null){
                l1=l1.next;
            }
            if(l2!=null){
                l2=l2.next;
            }
        }
        if(carry==1){
            curr.next=new ListNode(carry);
        }
        return pre.next;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《深度学习基础到实践 vol.2》是一本深度学习的相关书籍,适合有一定深度学习基础的读者进一步深入学习。本书是由神经网络与深度学习的专家所编写,分为第一部分和第二部分。第一部分主要讲述了全卷积神经网络的基础知识,包括全卷积神经网络的定义、设计以及训练等方面的内容。第二部分则是介绍了一些应用实例,涉及到图像分类、目标检测、语言处理等多个领域。此外,书中还提供了一些预训练模型和训练代码的链接供读者参考。 全卷积神经网络是一种用于处理图像和语音等序列信号的深度学习算法。本书通过讲述全卷积神经网络的原理和应用,让读者对全卷积神经网络有更深入的理解。此外,在第二部分的实战应用章节中,书中提供了一些常见的深度学习应用实例,包括图像分类、目标检测、语言处理等,并给出了相应的代码来帮助读者更好地理解如何使用全卷积神经网络来解决实际问题。 总之,对于已经具备一定的深度学习基础的读者来说,《深度学习基础到实践 vol.2》这本书是一本非常好的进阶指南,能够通过详细的讲解和实例代码的应用帮助读者更深入学习和理解深度学习算法的原理和应用。 ### 回答2: 《深度学习从基础到实战第二卷》是一本关于深度学习的重要教材。该书主要讲解了深度学习的实际应用及其基本原理。书中包括了深度学习技术的基本理论,涵盖了各种不同的深度学习模型,例如卷积神经网络、循环神经网络等。此外,本书还介绍了相关的最新发展,例如深度强化学习和生成对抗网络等。同时,该书的每一章都附有大量的案例和实践代码,可以帮助学习者更好地理解和应用深度学习。 需要注意的是,本书的前置条件是读者需要具备数学基础和编程基础。另外,每章节的篇幅较长,内容深入,需要慢慢消化。如果读者能够沉下心来,认真学习,相信一定能从中受益匪浅,掌握深度学习的核心技术,更好地应用到实际中。总的来说,本书是一本非常有价值的深度学习教材,不仅能够提高读者的专业能力,还可作为相关专业人才的推荐读物。 ### 回答3: 《深度学习入门:基础与实践》第2卷是机器学习领域中深度学习的一本非常重要的书籍。该书将读者从深度学习的基础知识开始,逐步引导读者深入学习深度学习的方方面面。 该书的第2卷主要介绍了深度学习中几个重要的核心技术,包括深度神经网络、卷积神经网络、循环神经网络等。同时,该书也介绍了深度学习在计算机视觉、自然语言处理和语音处理等领域的应用,读者可以通过实际案例了解深度学习算法在实践中的应用。 此外,该书也详细介绍了深度学习中常用的工具和框架,包括TensorFlow、PyTorch和Keras等。读者可以通过这些工具和框架快速地构建深度学习模型,提高研究和工程的效率。 总的来说,该书是一本非常实用的深度学习入门书籍,无论是对于学生、研究人员还是从事人工智能开发的工程师,都具有很高的参考价值。该书的作者通过简单易懂的语言、丰富多彩的实例和深入浅出的风格,让读者轻松了解并掌握深度学习的核心原理和应用方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值