• Day 63


    第752题:

    你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 。每个拨轮可以自由旋转:例如把 '9' 变为  '0','0' 变为 '9' 。每次旋转都只能旋转一个拨轮的一位数字。来源:力扣(LeetCode)

    锁的初始数字为 '0000' ,一个代表四个拨轮的数字的字符串。

    列表 deadends 包含了一组死亡数字,一旦拨轮的数字和列表里的任何一个元素相同,这个锁将会被永久锁定,无法再被旋转。

    字符串 target 代表可以解锁的数字,你需要给出最小的旋转次数,如果无论如何不能解锁,返回 -1。

    1、有四个转轮的密码锁,起始位0000,如果要将所有的组合全都枚举出来,首先扭动第一个转轮,可以得到1000,0100,0010,0001,9000,0900,0090,0009这8种;

      然后在这8个组合的基础上每个又可以各自生成8个不同的组合,那么最后会形成一棵树形的结构 ,里面包含了所有的数字组合;

      我们利用广度优先遍历遍历整棵树,来判断是否能到达指定的组合,当遇见deadends时就将跳过这个组合,遍历过的就标记上;

      最后如果能到达就返回转动次数,不行返回-1。

       

    第674题:

    给定一个未经排序的整数数组,找到最长且连续的的递增序列,并返回该序列的长度。(来自LeetCode)

     1、直接遍历数组,下一个数比这个数大就跳出,否则更新最长的序列长度;

      如果整个数组都是递增的那么在最后在更新一次结果;

      

    2、动态规划,如果下一个递增,那么dp[i]=dp[i-1]+1,每次更新最长递增子序列长度。

      



  • 相关阅读:
    RabbitMQ——CLI 管理工具 rabbitmqadmin
    RabbitMQ——Fedration插件
    RabbitMQ——使用Shovel插件迁移数据
    Http——HttpClient使用
    Http——Keep-Alive机制
    Http——HttpURLConnection详解
    Kafak——日志数据策略
    Keepalived + LVS 搭建高可用负载均衡
    TCP——抓包分析
    常见的网络端口
  • 原文地址:https://www.cnblogs.com/liang-yi-/p/13635759.html
Copyright © 2020-2023  润新知