常考常考高频率
1.快排(双指针)
快排,归并排序,堆排序
#快速排序O(nlogn)
def quick_sort(array, left, right):if left < right:mid = partition(array, left, right)quick_sort(array, left, mid)quick_sort(array, mid+1, right)return arraydef partition(array, left, right):pivot = array[left]while left < right:while (left <right and array[right]>= pivot):right -= 1array[left] = array[right]while (left< right and array[left] <= pivot):left += 1array[right] = array[left]array[left] = pivotreturn left
# 归并排序O(nlogn)
def merge(left, right):array = []while (len(left)>0 and len(right)>0):if left[0] < right[0]:array.append(left.pop(0))else:array.append(right.pop(0))array += leftarray += rightreturn arraydef merge_sort(array):if len(array) <= 1: #如果array只有一个元素直接退出return arraymid = len(array)//2left = merge_sort(array[:mid])right = merge_sort(array[mid:])array_new = merge(left, right)return array_new
2. 第K大(快排or 堆)
力扣215.数组中的第K个最大的元素
912.排序数组
class Solution:def findKthLargest(self, nums: List[int], k: int) -> int:pivot = nums[0]small,equal,big = [],[],[]for i in nums:if i> pivot:big.append(i)elif i < pivot:small.append(i)else:equal.append(i)if len(big) >= k:return self.findKthLargest(big, k)elif len(big)< k and len(big) + len(equal)>=k:return pivotelse:return self.findKthLargest(small,k-len(big)-len(equal))
找到第K大的元素
'''快速排序'''
class Solution:def findKthLargest(self, nums: List[int], k: int) -> int:def partition(nums, left, right):pivot = nums[left]while left< right:while (left< right and nums[right]>=pivot):right -= 1nums[left] = nums[right]while (left<right and nums[left] <= pivot):left += 1nums[right] = nums[left]nums[left] = pivotreturn leftdef randomPartition(nums, left, right): # 随机选择pivot,防止最坏情况nums是降序pivot_index = random.randint(left, right)nums[left], nums[pivot_index] = nums[pivot_index], nums[left]return partition(nums, left, right)def topKSplit(nums, left, right, k): #找到第k小的元素,如果是第1小,则index=0mid = randomPartition(nums, left, right)if mid == k-1:return nums[mid]elif mid < k-1:return topKSplit(nums, mid+1, right, k)else:return topKSplit(nums, left, mid-1, k)n = len(nums)return topKSplit(nums, 0, n-1, n-k+1) #第k大=第n-k+1小
堆排序???
'''堆排序'''
class Solution:def findKthLargest(self, nums: List[int], k: int) -> int:def maxHeapify(arr, i, end):j = 2*i + 1while j <= end:if j+1 <= end and arr[j+1] > arr[j]:j += 1if arr[i] < arr[j]:arr[i], arr[j] = arr[j], arr[i]i = jj = 2*i + 1else:breakdef maxHepify(arr, i, end): # 大顶堆j = 2*i + 1 # j为i的左子节点【建堆时下标0表示堆顶】while j <= end: # 自上而下进行调整if j+1 <= end and arr[j+1] > arr[j]: # i的左右子节点分别为j和j+1j += 1 # 取两者之间的较大者if arr[i] < arr[j]: # 若i指示的元素小于其子节点中的较大者arr[i], arr[j] = arr[j], arr[i] # 交换i和j的元素,并继续往下判断i = j # 往下走:i调整为其子节点jj = 2*i + 1 # j调整为i的左子节点else: # 否则,结束调整breakn = len(nums)# 建堆【大顶堆】for i in range(n//2-1, -1, -1): # 从第一个非叶子节点n//2-1开始依次往上进行建堆的调整maxHepify(nums, i, n-1)# 排序:依次将堆顶元素(当前最大值)放置到尾部,并调整堆# k-1次重建堆(堆顶元素),或 k次交换到尾部(倒数第k个元素)for j in range(n-1, n-k-1, -1):nums[0], nums[j] = nums[j], nums[0] # 堆顶元素(当前最大值)放置到尾部jmaxHepify(nums, 0, j-1) # j-1变成尾部,并从堆顶0开始调整堆return nums[-k]
3.滑动窗口的最大值(双端队列deque)
4. 岛屿数量 (dfs)
5. 二叉树遍历(队列等)
6. 旋转数组(二分)
7.完全平方数、零钱兑换(动态规划)
8.反转链表
相关文章:
常考常考高频率
1.快排(双指针) 快排,归并排序,堆排序 #快速排序O(nlogn) def quick_sort(array, left, right):if left < right:mid partition(array, left, right)quick_sort(array, left, mid)quick_sort(array, …...

Linux项目环境的搭建 (Red hat 9.0Linux操作系统)
一、目的: 1.搭建Linux操作系统项目所需的项目环境构件; 2.了解 Linux的组成,学会编译内核。 二、内容: 安装Red hat 9.0Linux操作系统; 三、步骤: 3.1 正确安装Redhat9.0操作系统。 3.2 rpm -Uvh *.…...

Study--Oracle-08-ORACLE数据备份与恢复(一)
一、ORACLE数据保护方案 1、oracle数据保护方案 2、数据库物理保护方案 oracle数据库备份可以备份到本地集群存储,也可以备份到云存储。 3、数据库逻辑数据保护方案 二、ORACLE数据体系 1、ORACLE 数据库的存储结构 2、oracle物理和逻辑存储结构 3、数据库进程 4、数据库日…...

FreeIPA安装
一、环境准备 主机名IP角色master. bhlu. com192.168.22.10服务端node1. bhlu. com192.168.22.11客户端 两台服务器关闭防火墙和 selinux配置好 yum 源 1.1 配置 chronyd 配置好 chronyd,使用 chronyc source -v 可以验证 # 这里写了一个playbook作为示例了 --…...
mysql数据库:SQL语言基础和基本查询
mysql数据库:SQL语言基础和基本查询 SQL语言简介 Structured Query Language, 结构化查询语言非过程性语言为加强SQL的语言能力,各厂商增强了过程性语言的特征如:Oracle的PL/SQL 过程性处理能力,SQL Server、Sybase的T-SQLSQL是用…...

strimzi operator 部署kafka集群(可外部访问)
Strimzi介绍 官方文档:https://strimzi.io/docs/operators/0.42.0/overview#kafka-components_str Strimzi介绍 Strimzi 是一个用于 Apache Kafka 在 Kubernetes 上部署和管理的开源项目。它提供了一组 Kubernetes 自定义资源定义(Custom Resource Definitions,CRDs)、控制…...

【网络安全】探索AI 聊天机器人工作流程实现RCE
未经许可,不得转载。 文章目录 前言正文前言 我发现了一个广泛使用的AI聊天机器人平台中的远程代码执行漏洞。该漏洞存在于聊天机器人的自定义工作流响应代码中,这些工作流允许开发人员通过创建定制的流程来扩展机器人的功能。 正文 在浏览自动化聊天机器人的多个特定功能…...
虚拟DOM、Vue渲染流程
虚拟DOM(Virtual DOM)是一种在前端开发中广泛使用的技术,它用JavaScript对象来表示真实DOM(文档对象模型)的结构和状态。虚拟DOM的核心思想是将页面的状态和结构保存在内存中,而不是直接操作真实的DOM。这一…...
centos7 启动python后端服务与停止服务的sh脚本
centos7 启动python后端服务与停止服务 分别在工程目录下新建启动脚本和停止脚本。 1、启动服务脚本 start_srv.sh: python3 start_srv.py运行 nohup ./start_srv.sh & 以守护进程的方式启动这个服务。 2、停止服务脚本 stop_srv.sh: sp_pidps -ef | grep start_srv…...

访问网站显示不安全怎么办?
访问网站时显示“不安全”,针对不同的原因有不同的解决方式,下面是常见的几种原因和对应的解决办法。 1.未启用HTTPS协议 如果网站仅使用HTTP协议,数据传输没加密,因此会被浏览器标记为“不安全”。解决办法是启用HTTPS协议,给…...
Scala与集合框架:高效数据处理的利器
Scala与集合框架:高效数据处理的利器 Scala 是一种现代化的编程语言,融合了面向对象编程和函数式编程的特性。其集合框架为处理数据提供了强大而灵活的工具,使得数据处理变得高效且富有表达力。本文将深入探讨 Scala 的集合框架,…...

基于 JWT 的模拟登录爬取实战
准备工作 1. 了解 JWT 相关知识 2. 安装 requests 库,并了解其基本使用 案例介绍 爬取网站: https://login3.scrape.center/ 用户名和密码是: admin 模拟登录 基于 JWT 的网站通常采用的是前后端分离式, 前后端的数据传输依…...
力扣(2024.08.06)
1. 144:二叉树的前序遍历 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def preorderTravers…...

如何快速入门 PyTorch ?
PyTorch是一个机器学习框架,主要依靠深度神经网络,目前已迅速成为机器学习领域中最可靠的框架之一。 PyTorch 的大部分基础代码源于 Ronan Collobert 等人 在 2007 年发起的 Torch7 项目,该项目源于 Yann LeCun 和 Leon Bottou 首创的编程语…...

Qt 快速部署环境(windeployqt.exe)
windeployqt.exe 是 Qt 框架提供的一个工具,主要用于将 Qt 应用程序部署到 Windows 环境中。它自动将所需的所有库、插件和文件复制到应用程序的目录中,以便用户能够直接运行应用程序,而无需额外的配置。 主要功能 自动识别依赖项ÿ…...
白骑士的PyCharm教学实战项目篇 4.2 数据分析与可视化
系列目录 上一篇:白骑士的PyCharm教学实战项目篇 4.1 Web应用开发 数据分析和可视化是现代数据科学和工程中的重要环节。借助PyCharm的强大功能,数据分析与可视化的开发工作变得更加高效和便捷。本文将详细介绍如何在PyCharm中进行数据分析工具的集成与…...

el-form-item,label在上方显示,输入框在下方展示
本来是两排展示去写,设计要求一排展示,label再上方,输入框、勾选框在下方;只能调整样式去修改;参考label-position这个属性 代码如下: <el-form ref"form" :model"formData" clas…...

Centos7.9操作系统kdump crash文件vmcore未生成问题
Centos7.9操作系统kdump crash文件未生成问题 一、背景说明1、问题背景 二、排查思路1、先了解下crashkernelcrashkernel设置方式示例如何配置crashkernel验证crashkernel配置 2、再了解下kdump2.1 Kdump 的基本概念2.1.1. 生产内核(Production Kernel)2…...

找不到符号 javax.servlet.WriteListener
1、问题 找不到符号2、原因 JDK1.8升级到高版本后,需要手动引入包。 在打包时,需要注意一下是否是在父类打包,而不是在某个model打包。 3、解决 引入 <dependency><groupId>javax.servlet</groupId><artifactId>…...

智能仪表板DevExpress Dashboard v24.1 - 新增级联参数过滤
使用DevExpress Analytics Dashboard,再选择合适的UI元素(图表、数据透视表、数据卡、计量器、地图和网格),删除相应参数、值和序列的数据字段,就可以轻松地为执行主管和商业用户创建有洞察力、信息丰富的、跨平台和设…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...

mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
Python 高效图像帧提取与视频编码:实战指南
Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...

yaml读取写入常见错误 (‘cannot represent an object‘, 117)
错误一:yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因,后面把yaml.safe_dump直接替换成yaml.dump,确实能保存,但出现乱码: 放弃yaml.dump,又切…...