文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

力扣题目汇总(最长连续递增序列,旋转图像

2023-01-31 00:44

关注

最长连续递增序列

1.题目描述

  1. 给定一个未经排序的整数数组,找到最长且连续的的递增序列。

    示例 1:

    输入: [1,3,5,4,7]
    输出: 3
    解释: 最长连续递增序列是 [1,3,5], 长度为3。
    尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。 

    示例 2:

    输入: [2,2,2,2,2]
    输出: 1
    解释: 最长连续递增序列是 [2], 长度为1。

    注意:数组长度不会超过10000。

2.解题思路

如果后者大于前者长度加1,后者小于前者长度变回1,然后重新开始循环如果后者大于前者加1

3.解题

class Solution:
    def findLengthOfLCIS(self, nums: List[int]) -> int:
        new_nums = nums[1:]
        count = 1
        len_list = []
        if len(nums)==0:
            return 0
        else:
            for a in range(len(new_nums)):
                if new_nums[a] > nums[a]:
                    count += 1
                else:
                    len_list.append(count)
                    count = 1
            len_list.append(count)                
            return max(len_list)       

旋转图像(中等)

1.题目描述

给定一个 n × n 的二维矩阵表示一个图像。

将图像顺时针旋转 90 度。

说明:

你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。

示例 1:

给定 matrix = 
[
  [1,2,3],
  [4,5,6],
  [7,8,9]
],

原地旋转输入矩阵,使其变为:
[
  [7,4,1],
  [8,5,2],
  [9,6,3]
]

示例 2:

给定 matrix =
[
  [ 5, 1, 9,11],
  [ 2, 4, 8,10],
  [13, 3, 6, 7],
  [15,14,12,16]
], 

原地旋转输入矩阵,使其变为:
[
  [15,13, 2, 5],
  [14, 3, 4, 1],
  [12, 6, 8, 9],
  [16, 7,10,11]
]

2.解题思路

难点:原表格修改,用太多for循环会超时
先水平翻转,再按照子列表的长度,把他变成有拥有子列表长度一样的空的列表,再里面填写值进去

3.解题

class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        import copy
        new_list = []
        time = 0
        conter = 0
        matrix.reverse()
        matrix_1 = copy.copy(matrix)
        print(matrix)
        if len(matrix) != 0:              #删除值并且把值全变成空的列表
            for a in range(len(matrix)): 
                matrix[a] = []
            while len(matrix) > len(matrix_1[0]):
                matrix.pop()
            while len (matrix) < len(matrix_1[0]):
                matrix.append([])
            for b in range(len(matrix_1[0])):  #填值
                for c in range(len(matrix_1)):
                    if time != len(matrix_1):
                        time += 1
                        matrix[conter].append(matrix_1[c][b])  
                    elif time == len(matrix_1):
                        time = 1
                        conter += 1
                        matrix[conter].append(matrix_1[c][b])

宝石与石头

1题目描述

  1. 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。

    J 中的字母不重复,JS中的所有字符都是字母。字母区分大小写,因此"a""A"是不同类型的石头。

    示例 1:

    输入: J = "aA", S = "aAAbbbb"
    输出: 3

    示例 2:

    输入: J = "z", S = "ZZ"
    输出: 0

    注意:

    • SJ 最多含有50个字母。
    • J 中的字符不重复。

2.解题思路

去除J里面的值,然后再S中查找值的个数用COUNT,求和

3.解题

class Solution:
    def numJewelsInStones(self, J: str, S: str) -> int:
        num = 0
        for i in J:
            num_1 = S.count(i)
            num += num_1
        return num
        
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯