LeetCode 每日一题 2023/11/20-2023/11/26

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步


目录

      • 11/20 53. 最大子数组和
      • 11/21 2216. 美化数组的最少删除数
      • 11/22 2304. 网格中的最小路径代价
      • 11/23 1410. HTML 实体解析器
      • 11/24 2824. 统计和小于目标的下标对数目
      • 11/25 1457. 二叉树中的伪回文路径
      • 11/26 828. 统计子串中的唯一字符


11/20 53. 最大子数组和

遍历每一个数 如果当前和大于0则将其加上 否则从0开始

def maxSubArray(nums):""":type nums: List[int]:rtype: int"""ret = max(nums)now = 0    for i in range(len(nums)):if now + nums[i]>0:now += nums[i]ret = max(ret,now)else:now = 0return ret

11/21 2216. 美化数组的最少删除数

对于某个偶数坐标i 如果nums[i]==nums[i+1]
此时需要处理
如果删除i+1后的数据 不产生影响
如果删除i之前的数据 可能产生新的问题坐标需要处理
所以删除i最优

def minDeletion(nums):""":type nums: List[int]:rtype: int"""n= len(nums)ans = 0loc = Truefor i in range(n-1):if nums[i]==nums[i+1] and loc:ans+=1else:loc = not locans += (n-ans)%2return ans

11/22 2304. 网格中的最小路径代价

从最后一行往前考虑
dp[i][j] 表示在第i行j列的最小代价
dp[m-1] = grid[m-1]

def minPathCost(grid, moveCost):""":type grid: List[List[int]]:type moveCost: List[List[int]]:rtype: int"""m,n=len(grid),len(grid[0])dp = [[float("inf")]*n for _ in range(m)]dp[-1] = grid[-1]for i in range(m-2,-1,-1):for j,g in enumerate(grid[i]):for k,c in enumerate(moveCost[g]):dp[i][j] = min(dp[i][j],dp[i+1][k]+c)dp[i][j]+=greturn min(dp[0])

11/23 1410. HTML 实体解析器

从头遍历 判断是否存在匹配的字符实体

def entityParser(text):""":type text: str:rtype: str"""m = {'&quot;': '"','&apos;': "'",'&gt;': '>','&lt;': '<','&frasl;': '/','&amp;': '&',}i = 0n = len(text)ans = []while i<n:tag = Falseif text[i]=='&':for e in m:if text[i:i+len(e)]==e:ans.append(m[e])i+=len(e)tag = Truebreakif not tag:ans.append(text[i])i+=1return ''.join(ans)

11/24 2824. 统计和小于目标的下标对数目

从小到大排序
双指针
确定小的位置l 大的位置r往左移动知道满足条件

def countPairs(nums, target):""":type nums: List[int]:type target: int:rtype: int"""nums.sort()ans = 0l,r=0,len(nums)-1while l<r:while l<r and nums[l]+nums[r]>=target:r-=1ans += r-ll+=1return ans

11/25 1457. 二叉树中的伪回文路径

如果是伪回文路径 那么其节点值中最多只能有一个值出现奇数次 其他都是偶数次
节点值为1到9 使用一个9位二进制tag来记录节点值出现次数的奇偶性
如果这个tag中存在小于1个的1那么满足条件

class TreeNode(object):def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = right
def pseudoPalindromicPaths (root):""":type root: TreeNode:rtype: int"""def dfs(tag,node):tag ^= 1<<node.valleft = Truev = 0if node.left:v += dfs(tag,node.left)left = Falseif node.right:v += dfs(tag,node.right)left = Falseif left:if tag==0 or tag&(tag-1)==0:v+=1return vreturn dfs(0,root)

11/26 828. 统计子串中的唯一字符

对每一个位置的字符计算其贡献值
对于当前位置i的字符 找到相同字符的前一个位置a 和后一个位置b
这个位置的贡献值为(i-a)*(b-i)

def uniqueLetterString(s):""":type s: str:rtype: int"""from collections import defaultdictm = defaultdict(list)for i,c in enumerate(s):m[c].append(i)ans = 0for l in m.values():l = [-1]+l+[len(s)]for i in range(1,len(l)-1):ans += (l[i]-l[i-1])*(l[i+1]-l[i])return ans

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++中using的声明

using的编译指令 using的编译指令使整个命名空间的标识符可用 #include<iostream> using namespace std; namespace namea { int a 10; void foo() { cout << "hello using" << endl; } } void test01(){ //int a 100;…

解密编程难题:程序员的突破之路

引言&#xff1a; 在编程的世界里&#xff0c;技术难题就像是一道道难以逾越的障碍&#xff0c;让程序员们倍感挑战。Bug、性能优化和跨平台兼容性等问题&#xff0c;常常困扰着开发者们。然而&#xff0c;正是这些难题激发了程序员们的求知欲和创造力&#xff0c;让他们不断寻…

职场“雷人”瞬间

职场是人际交往的舞台&#xff0c;而在这个舞台上&#xff0c;总会有一些令人哭笑不得的瞬间。领导的奇怪任务、同事的自以为是&#xff0c;抑或是技术一无所知的领导对任务的荒谬要求&#xff0c;这些故事让我们在工作中既有欢笑&#xff0c;又有无语。 1. 领导的“挥洒自如”…

Android问题记录 - Unable to make field private final java.lang.String java.io.File.path accessible(持续更新)

文章目录 前言开发环境问题描述问题分析解决方案补充内容最后 前言 最近一个Flutter项目有新需求&#xff0c;开发时一直是在iOS设备上运行&#xff0c;花了几天做完后运行到Android设备测试&#xff0c;结果项目构建失败了。 开发环境 Flutter: 3.7.11Android Studio: 2022…

Golang实现YOLO:高性能目标检测算法

引言 目标检测是计算机视觉领域的重要任务&#xff0c;它不仅可以识别图像中的物体&#xff0c;还可以标记出物体的位置和边界框。YOLO&#xff08;You Only Look Once&#xff09;是一种先进的目标检测算法&#xff0c;以其高精度和实时性而闻名。本文将介绍如何使用Golang实…

linux 内存回收lru算法代码注释1

本文为旧的lru算法&#xff0c;多代lru算法与旧算法的区别可稳步&#xff1a;linux内存回收mglru算法-CSDN博客 1.shrink_node_memcgs node_reclaim->__node_reclaim->shrink_node&#xff0c;这里调用shrink_node_memcgs回收后&#xff0c;要判断下是否分配内存速度比…

对坐标的曲面积分@第二类曲面积分

文章目录 abstract曲面基本概念双侧曲面有向曲面曲面区域投影平面区域投影 对坐标的曲面积分流向曲面一侧的流量简单情形 一般情形小结 对坐标的曲面积分其他定义第二类曲面积分的存在性并写和简写流量用第二类曲面积分描述 性质对坐标的曲面积分的计算公式的其他形式应用例例 …

使用webdriver-manager自动下载浏览器驱动(python)

使用webdriver-manager自动下载浏览器驱动&#xff0c;再也不用担心webdriver版本问题 文章目录 01 简介 02 安装webdriver_manager 03 ChromeDriver 3.1 Selenium 3 用法 3.2 Selenium 4 用法 04 EdgeChromiumDriver 4.1 Selenium 3 用法 4.2 Selenium 4 用法 05 GeckoDrive…

MySQL进阶知识:二

目录 视图 基本语法 视图的更新 视图的作用 存储过程 介绍 存储过程基本语法 存储过程的变量 系统变量 用户自定义变量 局部变量 存储过程的判断逻辑 存储过程的参数 存储过程中的流程控制 存储过程中的循环 while的基本语法 repeat的基本语法 loop的基本语法…

金山办公前端二面

1. react 和 vue的区别 还有jquery&#xff1f; &#xff08;1&#xff09; jquery 和 vue、react 的区别&#xff1a; vue 和 react : 数据和视图分离 以数据驱动视图&#xff0c;只关心数据变化 dom 操作被封装&#xff08;数据驱动&#xff09; jquery&#xff1a;依靠 do…

【问题解决!】OSError: [WinError 1455] 页面文件太小,无法完成操作。Error loading “c:\Anaconda3\lib

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 问题描述问题原因二、解决方法 问题描述 在使用pytorch跑深度学习的时候报错OSError: [WinError 1455] 页面文件太小&#xff0c;无法完成操作。Error loading “c…

系列七、事务

一、事务 1.1、概述 事务是数据库操作的基本单元&#xff0c;它是指逻辑上的一组操作&#xff0c;要么都成功&#xff0c;要么都失败。典型场景&#xff1a;转账&#xff0c;例如Jack给Rose转账1000元&#xff0c;转账成功&#xff1a;Jack账户的余额少1000元&#xff0c;Rose…

【C++】enum枚举与强类型枚举

enum 文章目录 enumenum枚举枚举变量强类型枚举 enum枚举 C的enum工具提供了一种创建符号常量的方式&#xff0c;这种方式可以替代const 枚举类型定义用关键字enum标识 enum 标识符 {枚举数据表 }&#xff1b;枚举数据表的值都是整数。第一个枚举成员的默认值为整型的0&…

人脸识别经典网络-MTCNN(含Python源码实现)

人脸检测-mtcnn 本文参加新星计划人工智能赛道&#xff1a;https://bbs.csdn.net/topics/613989052 文章目录 人脸检测-mtcnn1. 人脸检测1.1 人脸检测概述1.2 人脸检测的难点1.3 人脸检测的应用场景 2. mtcnn2.1 mtcnn概述2.2 mtcnn的网络结构2.3 图像金字塔2.4 P-Net2.5 R-Ne…

戴尔科技推出全新96核Precision 7875塔式工作站

工作站行业一直是快节奏且充满惊喜的。在过去25年中,戴尔Precision一直处于行业前沿,帮助创作者、工程师、建筑师、研究人员等将想法变为现实,并对整个世界产生影响。工作站所发挥的作用至关重要,被视为化不可能为可能的必要工具。如今,人工智能(AI)和生成式AI(GenAI)的浪潮正在…

西南科技大学C++程序设计实验二(类与对象一)

C++最大的特点就是面向对象,掌握它的几种基本性质还是好理解的,可以看我C++专栏的期末速成,希望对你们学习C++有帮助。 一、实验目的 1.理解简单类的定义、说明与使用 2.理解类中不同属性数据成员的访问特点 3.理解构造函数、析构函数的作用 重点:掌握类的定义与实现,…

MPPT工作流程及算法和硬件的选择

MPPT算法选择 目前&#xff0c;MPPT算法有开路电压比率(离线)、短路电流比率(离线)、观察调节(在线)、极限追踪控制法(在线)。 在光伏控制系统中&#xff0c;因为日照、温度等条件的变化&#xff0c;光伏电池的输出功率也是在不断变化的&#xff0c;为保证使得光伏电池的输出功…

vue3中的customRef创建一个自定义的 ref对象

customRef 创建一个自定义的 ref&#xff0c;并对其依赖项跟踪和更新触发进行显式控制 小案例: 自定义 ref 实现 debounce <template><div style"font-size: 14px;"><input v-model"text" placeholder"搜索关键字"/><…

linux shell下除了某个文件外的其他文件全部删除的命令

Linux反选删除文件 最简单的方法是 # shopt -s extglob &#xff08;打开extglob模式&#xff09; # rm -fr !(file1) 如果是多个要排除的&#xff0c;可以这样&#xff1a; # rm -rf !(file1|file2) Linuxrm删除指定文件外的其他文件方法汇总 一、Linux下删除文…

【Python】导入Excel数据表的几种方式

如何导入csv、xlsx格式的Excel&#xff1b;一张数据表里有多个sheet页&#xff0c;如何获取所有sheet页名字&#xff0c;并导入每张sheet页&#xff1b; 1. 导入CSV格式的Excel表&#xff1a; import pandas as pd import numpy as npdf_datapd.read_csv(数据底表.csv) print…