首页 > 编程语言 >程序员面试金典---4

程序员面试金典---4

时间:2023-04-13 21:13:17浏览次数:43  
标签:matrix 金典 List len --- 程序员 range ls res

字符串压缩

思路:

使用双指针进行模拟即可

class Solution:
    def compressString(self, S: str) -> str:
        res = []
        # i:左指针,j:右指针
        i, j, ls = 0, 0 ,len(S)
        while i < ls:
            # 记数当前字符的连续个数
            while j < ls and S[i] == S[j]:
                j += 1
            # 添加到结果数组
            res.append(S[i])
            res.append(str(j - i))
            # 左指针前进
            i = j
        # 拼接
        res = ''.join(res)
        # 输出
        return res if len(res) < ls else S

旋转矩阵

旋转公式:

\[matrix[i][j] = matrix[n - j - 1][i] \]

\[matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1] \]

\[matrix[n - i - 1][n - j - 1] = matrix[j][n - i - 1] \]

\[matrix[j][n - i - 1] = matrix[i][j] \]

其中i为循环行数至n//2j为循环列数至(n+1)//2n为行列数

因此,代码为:

class Solution:
   def rotate(self, matrix: List[List[int]]) -> None:
       """
       Do not return anything, modify matrix in-place instead.
       """
       n = len(matrix)

       for i in range(n // 2):
           for j in range((n + 1) // 2):
               matrix[i][j], matrix[n - j - 1][i], matrix[n - i - 1][n - j - 1], matrix[j][n - i - 1] = matrix[n - j - 1][i], matrix[n - i - 1][n - j - 1], matrix[j][n - i - 1], matrix[i][j]

零矩阵

思路:

设置两个列表记录哪里需要置零,然后对其改变即可

class Solution:
    def setZeroes(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        n, m = len(matrix), len(matrix[0])
        # 判断列表
        rows, cols = [False] * n, [False] * m

        for i in range(n):
            for j in range(m):
                if matrix[i][j] == 0:
                    # 某一个为0,将其行列记下
                    rows[i] = cols[j] = True
        
        for i in range(n):
            for j in range(m):
                # 如果某一个的行列别记下了为0,则直接置为0
                matrix[i][j] =  0 if rows[i] or cols[j] else matrix[i][j]

标签:matrix,金典,List,len,---,程序员,range,ls,res
From: https://www.cnblogs.com/dgqp/p/17316395.html

相关文章

  • Mogdb - copy 报错 ERROR: missing data for column
    Mogdb-copy报错ERROR:missingdataforcolumn本文出处:https://www.modb.pro/db/419967故障现象使用copy命令在进行数据导入时,出现报错:ERROR:missingdataforcolumn“c2” 故障原因在测试库上模拟重建故障环境droptableifexistssaferpt.crb_g02_002;CREATETABLE......
  • 华为认证DATACOM-HCIP级别实验
    路由器服务器中继实验拓扑含笔记R1<Huawei>undotm<Huawei>sy[Huawei]syR1[R1]dhcpenable[R1]ippoolhuawei1.0[R1-ip-pool-huawei1.0]gateway-list10.1.1.1[R1-ip-pool-huawei1.0]network10.1.1.0mask24[R1-ip-pool-huawei1.0]intg0/0/0[R1-GigabitEthernet0......
  • MySQL日志、事务原理 -- undolog、redolog、binlog、两阶段提交
        1.undolog1.1 undolog–原子性   1.2回滚日志,记录数据被修改前的信息,属于逻辑日志什么是逻辑日志?比如我们执行一条delete语句,undolog里边记录的是相反的操作insert记录【相当于存放的是操作逻辑语句,而不是数据】逻辑日志好处比如全表更新,如果......
  • git--记录
       1、由于本地的git配置的用户名、密码与gitlabs上注册的用户名、密码不一致导致   2、当操作git命令时又没有弹框提示请输入用户名密码的提示框解决方案:1、进入到本地放库目录下,然后右击选择“GitBashHere”,输入如下指令,再次git操作时会让你重新输入用户名和密码再......
  • JAVAWEB-项目搭建准备工作八步骤-2023-04-13
    第一步:生成一个javamavenweb项目第二步:配置TOMCAT第三步:测试项目是否可以跑起来第四步:导入maven各个jar包+增加build解决资源导出问题<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://ww......
  • el-dialog每次重新打开展示不同的内容,滚动条未重新置顶的解决方案。
    环境nuxt3+vu3+element-plus-2.3.3复现原因假设有5条内容,打开一项内容通过el-dialog进行展示,当出现滚动条后,往下滑动,紧接着通过esc或遮罩进行关闭,打开另一项内容,这时候滚动条并未进行置顶。解决方法参考就行了。js部分constdata=reactive({newsDialog:{s......
  • 【element-ui】解决textarea show-word-limit挡住文字问题
    问题:“67/500”默认背景为白色已超出文本输入框,遮住部分上border,当文字到达右侧时会遮住部分文字,且无法点击该部分解决方案:背景透明色,文字放到右下角 html:<el-inputtype="textarea"autosize maxlength="500"show-word-limit v-model="form.keyIndustry"placeh......
  • 【element-ui】element ui from表单手机号座机号验证
    //手机号验证rules:{ phone:[ {required:true,min:11,max:11,message:"请输入11位手机号码",trigger:"blur"},{pattern:/^1[3456789]\d{9}$/,message:"请输入正确的手机号码"}]}//座机号......
  • 基于小生境粒子群算法的配电网有功-无功协调优化
    基于小生境粒子群算法的配电网有功-无功协调优化主要内容:代码主要做的是考虑光伏出力波动性的配电网有功无功协调优化,在调度模型中考虑了光伏并网的波动性,并考虑用储能对其进行平抑,配电网调度模型中含有的设备主要包括:光伏逆变器、变压器、电容等设备,目标函数包括调压总成本、电......
  • 基于雨流计数法的源-荷-储双层协同优化配置
    基于雨流计数法的源-荷-储双层协同优化配置主要内容:代码主要做的是一个源荷储优化配置的问题,采用双层优化,外层优化目标的求解依赖于内层优化的储能系统充放电曲线,基于储能系统充放电曲线,采用雨流计数法电池健康状态数学模型,对决策变量储能功率和容量的储能系统寿命年限进行评估;内......