当前位置: 首页 > news >正文

Python解力扣算法题4(基础)

# 1.求斐波那契数列下标为n的数 (从零开始)
# def fib(n):
#     if n < 2:
#         return n
#
#     p, q, r = 0, 0, 1
#     for i in range(2, n + 1):
#         p, q = q, r
#         r = p + q
#
#     return r#2. 和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。
# 现在,给你一个整数数组 nums ,请你在所有可能的子序列中找到最长的和谐子序列的长度。
# 在这段代码中,Counter(nums)会返回一个字典,其中的键是数组中的数,值是这个数在数组中出现的次数。
# 然后,对于字典中的每个数,我们检查x + 1是否在字典中,如果在,那么就更新最长的和谐子序列的长度。
# def findLHS(nums):
#     from collections import Counter
#     count = Counter(nums)
#     # print(count) Counter({2: 3, 3: 2, 1: 1, 5: 1, 7: 1})
#     ans = 0
#     for x in count:
#         if x + 1 in count:
#             ans = max(ans, count[x] + count[x+1])
#     return ans
# print(findLHS([1,3,2,2,5,2,3,7]))# 3.假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
# 给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?
# 能则返回 true ,不能则返回 false 。
# def canPlaceFlowers(flowerbed, n):
#     # count用来检测当前种了几朵花
#     count = 0
#     flowerbed = [0] + flowerbed + [0]
#     # len(flowerbed) - 1是为了后面遍历flowerbed[i + 1]防止越界
#     for i in range(1, len(flowerbed) - 1):
#         if flowerbed[i - 1] == 0 and flowerbed[i] == 0 and flowerbed[i + 1] == 0:
#             flowerbed[i] = 1
#             count += 1
#         if count >= n:
#             return True
#     return False
# print(canPlaceFlowers([1,0,0,0,1],1))# 4.给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
# 法1 超时
# def maximumProduct(nums):
#     max=nums[0]*nums[1]*nums[2]
#     for i in range(0,len(nums)):
#         for j in range(i+1,len(nums)):
#             for k in range(j+1,len(nums)):
#                 if nums[i]*nums[j]*nums[k]>max:
#                     max=nums[i]*nums[j]*nums[k]
#     return max# 法2
# def maximumProduct(nums):
#     nums.sort()
#     # 两个最小的数和最大的数的乘积
#     min_product = nums[0] * nums[1] * nums[-1]
#     # 三个最大的数的乘积
#     max_product = nums[-1] * nums[-2] * nums[-3]
#     return max(min_product, max_product)
# print(maximumProduct([-1,-2,-3]))# 5.给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。
# 请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。
# 任何误差小于 10-5 的答案都将被视为正确答案。
# def findMaxAverage(nums, k):
#     maxtotal = total = sum(nums[:k])
#     n = len(nums)
#     for i in range(k, n):
#         total = total - nums[i - k] + nums[i]
#         maxtotal = max(total, maxtotal)
#     return maxtotal / k
# print(findMaxAverage([1,12,-5,-6,50,3],4))# 6.集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。
# 给定一个数组 nums 代表了集合 S 发生错误后的结果。
# 请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。
# def findErrorNums(nums):
#     total = sum(range(1, len(nums) + 1))
#     num = total - sum(set(nums))
#     diff = total - sum(nums)
# 我(错误的)离正确的(3)少了一个,所以我(错误的)是2
#     return [num - diff, num]# 7.给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
# def reverseWords(s):
#    s=s.split(" ")
#    for i in range(len(s)):
#       s[i]=s[i][::-1]
#    #  用空格连接s中的每个元素并返回连接后的字符串
#    return " ".join(s)
#
# print(reverseWords("Let's take LeetCode contest"))# 8.给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从 1 到 n 的 min(ai, bi) 总和最大。
# 返回该 最大总和 。
# 容易想到答案就是将列表排序后,每隔一个取一个数,这些数相加就是满足题意的最大总和
# def arrayPairSum(nums):
#    nums.sort()
#    return sum(nums[::2])
# print(arrayPairSum([6,2,6,5,1,2]))# 9.在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。
# 移动顺序由字符串 moves 表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。
# 如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。
# def judgeCircle(moves):
#     num = 0
#     num1 = 0
#     for i in moves:
#         if i == "U":
#             num += 1
#         if i == "D":
#             num -= 1
#         if i == "R":
#             num1 += 2
#         if i == "L":
#             num1 -= 2
#     return num == 0 and num1 == 0#print(judgeCircle("UDDUURLRLLRRUDUDLLRLURLRLRLUUDLULRULRLDDDUDDDDLRRDDRDRLRLURRLLRUDURULULRDRDLURLUDRRLRLDDLUUULUDUUUUL"))# 10.给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度
# def findLengthOfLCIS(nums):
#     count=1
#     max=0
#     if len(nums)==1:
#         return 1
#     for i in range(len(nums)-1):
#         if nums[i+1]>nums[i]:
#             count+=1
#         else:
#             count=1
#         if count>max:
#             max=count
#     return max
#
# print(findLengthOfLCIS([1,3,5,4,7]))# 11.给你一个字符串 s,最多 可以从中删除一个字符。
# def validPalindrome(self, s):
#     isPalindrome = lambda x : x == x[::-1]
#     left, right = 0, len(s) - 1
#     while left <= right:
#         if s[left] == s[right]:
#             left += 1
#             right -= 1
#         else:
#             return isPalindrome(s[left + 1 : right + 1]) or isPalindrome(s[left: right])
#     return True
# print(validPalindrome("abca"))# 12.你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。
# 比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则:
# 整数 x - 表示本回合新获得分数 x
# "+" - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。
# "D" - 表示本回合新获得的得分是前一次得分的两倍。题目数据保证记录此操作时前面总是存在一个有效的分数。
# "C" - 表示前一次得分无效,将其从记录中移除。题目数据保证记录此操作时前面总是存在一个有效的分数。
# 请你返回记录中所有得分的总和。
# def calPoints(ops):
#     ans = 0
#     points = []
#     for op in ops:
#         if op == '+':
#             pt = points[-1] + points[-2]
#         elif op == 'D':
#             pt = points[-1] * 2
#         elif op == 'C':
#             ans -= points.pop()
#             continue
#         else:
#             pt = int(op)
#         ans += pt
#         points.append(pt)
#     return ans
# print(calPoints(["5","2","C","D","+"]))# 13.给你一个整数数组 nums ,请计算数组的 中心下标 。
# 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。
# 如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。
# 如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。# 这题要求某个区间的元素之和,立马想到 preSum 这个方法。
# 它的计算方法是从左向右遍历数组,当遍历到数组的 i 位置时,preSum表示 i 位置左边的元素之和。
# 我们提前计算出所有元素之和 sums_,那么 sums_ - preSum - nums[i] 就是 i 位置右边元素之和。
# 如果 preSum == sums_ - preSum - nums[i],那么 i 就是满足题目含义的「中心索引」位置。
# 如果遍历完数组,都没有发现满足题意的「中心索引」,那么返回 -1 .# def pivotIndex(nums):
#     N = len(nums)
#     sums_ = sum(nums)
#     preSum = 0
#     for i in range(N):
#         if preSum == sums_ - preSum - nums[i]:
#             return i
#         preSum += nums[i]
#     return -1
#
# print(pivotIndex([1, 7, 3, 6, 5, 6]))# 14.自除数 是指可以被它包含的每一位数整除的数。
# 例如,128 是一个 自除数 ,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。
# 自除数 不允许包含 0 。
# 给定两个整数 left 和 right ,返回一个列表,列表的元素是范围 [left, right](包括两个端点)内所有的 自除数 。
# def selfDividingNumbers(left, right):
#    list1=[]
#    for i in range(left,right+1):
#        if i==0:
#            continue
#        digits = []
#        list2=[int(j) for j in str(i)]
#        n=len(list2)
#        count=0
#        for j in list2:
#           if j==0:
#               continue
#           if i % j==0:
#               count+=1
#        if count==n:
#           list1.append(i)
#    return list1
#
# print(selfDividingNumbers(1,22))# 15.Alice 有 n 枚糖,其中第 i 枚糖的类型为 candyType[i] 。Alice 注意到她的体重正在增长,所以前去拜访了一位医生。
# 医生建议 Alice 要少摄入糖分,只吃掉她所有糖的 n / 2 即可(n 是一个偶数)。Alice 非常喜欢这些糖,她想要在遵循医生建议的情况下,尽可能吃到最多不同种类的糖。
# 给你一个长度为 n 的整数数组 candyType ,返回: Alice 在仅吃掉 n / 2 枚糖的情况下,可以吃到糖的 最多 种类数。
# def distributeCandies(candyType):
#     num=len(candyType)
#     num=num//2
#     candy=set(candyType)
#     if len(candy)==num:
#         return num
#     elif len(candy)>num:
#         return num
#     else:
#         return len(candy)
#
#
# print(distributeCandies([6,6,6,6]))

相关文章:

Python解力扣算法题4(基础)

# 1.求斐波那契数列下标为n的数 &#xff08;从零开始&#xff09; # def fib(n): # if n < 2: # return n # # p, q, r 0, 0, 1 # for i in range(2, n 1): # p, q q, r # r p q # # return r#2. 和谐数组是指一个数组里元素…...

鸿蒙NEXT开发-网络管理(基于最新api12稳定版)

注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&#xff0c;博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…...

【LeetCode每日一题】——1413.逐步求和得到正数的最小值

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 前缀和 二【题目难度】 简单 三【题目编号】 1413.逐步求和得到正数的最小值 四【题目描述】…...

音频分割:长语音音频 分割为 短语音音频 - python 实现

在做语音任务时&#xff0c;有是会用到的语音音频是长音频&#xff0c;这就需要我们将长音频分割为短音频。 该示例将声音的音量和静默时间结合作为语音的分割条件。 使用音量和静默时间结合的分割条件&#xff0c;能够比较好的进行自然断句&#xff0c;不会话语没有说完就切断…...

【Echarts动态排序图,series使用背景色更新动画,背景底色不同步跟随柱子动画】大家有没有解决方案

echarts动态排序图背景色动画不同步 echarts试一试 series下面添加了showBackground属性&#xff0c;动画时底色背景不同步跟随柱图 showBackground: true, backgroundStyle: {borderRadius: 9,color: RGB(255,199,91, 0.2) }const data []; for (let i 0; i < 5; i) {d…...

FLINK SQL 元数据持久化扩展

Flink SQL元数据持久化扩展是一个复杂但重要的过程&#xff0c;它允许Flink作业在重启或失败后能够恢复状态&#xff0c;从而确保数据处理的连续性和准确性。以下是对Flink SQL元数据持久化扩展的详细分析&#xff1a; 一、元数据持久化的重要性 在Flink中&#xff0c;元数据…...

MySQL【知识改变命运】04

复习&#xff1a; 1&#xff1a;CURD 1.1Create &#xff08;创建&#xff09; 语法&#xff1a; insert [into] 表名 [column[,column]] valuse(value_list)[,vaule_list]... value_list:value,[value]...创建一个实例表&#xff1a; 1.1.1单⾏数据全列插⼊ values_l…...

AD9680(adc直采芯片)使用说明

写这篇文章之前我是没有使用过AD9680的芯片&#xff0c;但是使用过GMS011芯片&#xff08;是国内24S&#xff09;下的公司出来的芯片&#xff0c;寄存器和管脚全对标。 在这里我就大概说一下芯片的说用方法 一、硬件设计 该芯片支持双通道射频直采 支持协议JESD204B 14位 采样…...

无人机之位置信息计算篇

一、主要导航技术 卫星导航 全球定位系统&#xff08;GPS&#xff09;&#xff1a;无人机上装有专门的接收器&#xff0c;用于捕获GPS系统发射的无线电信号。当无人机接收到来自至少四颗卫星的信号时&#xff0c;通过计算信号抵达时间的微小差异&#xff0c;即可运用三角定位…...

安卓cpu知识

背景 目前的cpu都是多核的&#xff0c;为了有更好的能效&#xff0c;每个核的频率从低往高不等。市面上&#xff0c;大家根据频率不同&#xff0c;都叫大小核。既然分了大小核&#xff0c;那么多核心&#xff0c;就要有不同的cpu调度策略。所以cpu上的所有核&#xff0c;又会根…...

图书管理新纪元:Spring Boot进销存系统

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理图书进销存管理系统的相关信息成为必然。开…...

Application protocol

5 应用协议 在 TS 31.101 [11] 的对应条款中所述的要求适用于 USIM 应用。 在执行后续章节“USIM 安全相关程序”和“订阅相关程序”中的程序之前&#xff0c;必须执行“USIM 管理程序”中列出的程序。“USIM 安全相关程序”中列出的程序是强制性的。“订阅相关程序”中列出的程…...

金融信用评分卡建模项目:AI辅助

最近我一直忙着开发一个信用评分卡建模工具&#xff0c;所以没有时间更新示例或动态。今天&#xff0c;我很高兴地跟大家分享&#xff0c;这个工具的基本框架已经完成了&#xff0c;并且探索性的将大语言模型&#xff08;AI&#xff09;整合了进去。目前ai在工具中扮演智能助手…...

java对接GPT 快速入门

统一对接GPT服务的Java说明 当前&#xff0c;OpenAI等GPT服务厂商主要提供HTTP接口&#xff0c;这使得大部分Java开发者在接入GPT时缺乏标准化的方法。 为解决这一问题&#xff0c;Spring团队推出了Spring AI &#xff0c;它提供了统一且标准化的接口来对接不同的AI服务提供商…...

微信小程序引入组件教程

1、安装 node.js 下载网址&#xff1a;https://nodejs.org 2.通过 npm 安装 npm init -y npm i vant/weapp -S --production 3、修改 app.json 将 app.json 中的 “style”: “v2” 去除 4、修改 project.config.json 关于修改 project.config.json 的详细内容&#x…...

STM32—SPI通信外设

1.SPI外设简介 STM32内部集成了硬件SPI收发电路&#xff0c;可以由硬件自动执行时钟生成、数据收发等功能&#xff0c;减轻CPU的负担可配置8位/16位数据帧、高位先行/低位先行时钟频率&#xff1a;fpclk/(2,4,8,16,32,64,128,256)支持多主机模型、主或从操作可精简为半双工/单…...

Ubuntu:用户不在sudoers文件中

1、问题 执行sudo xxx命令时&#xff0c;显示&#xff1a; user 不在sudoers文件中 需要查看系统版本进入恢复模式修复。 2、重启进入恢复模式 查看系统命令&#xff1a;uname -r 可能显示为&#xff1a;6.8.0-45-generic 重启Ubuntu系统&#xff0c;在开机时按ESC进入模…...

五、Spring Boot集成Spring Security之认证流程2

一、Spring Boot集成Spring Security专栏 一、Spring Boot集成Spring Security之自动装配 二、Spring Boot集成Spring Security之实现原理 三、Spring Boot集成Spring Security之过滤器链详解 四、Spring Boot集成Spring Security之认证流程 五、Spring Boot集成Spring Se…...

接口测试(全)

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、什么是接口测试 顾名思义&#xff0c;接口测试是对系统或组件之间的接口进行测试&#xff0c;主要是校验数据的交换&#xff0c;传递和控制管理过程&#xff0…...

【学习】word保存图片

word中有想保存的照片 直接右键另存为的话&#xff0c;文件总是不清晰&#xff0c;截屏的话&#xff0c;好像也欠妥。 怎么办? 可以另存为 网页 .html 可以得到&#xff1a; 原图就放到了文件夹里面...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...