站长工具域名wordpress外国主题

news/2025/10/7 1:46:24/文章来源:
站长工具域名,wordpress外国主题,湘建网,做哪个视频网站赚钱目录 常见思路更优的解法#xff08;面试官喜欢的#xff09; 常见思路 要选出最小的前K个数首先我们会想到排排升序建大堆#xff0c;排降序建小堆 一个直观的想法是使用#xff08;小根堆#xff09;#xff0c;起始将所有元素放入堆中#xff0c;然后再从堆中取出k 个… 目录 常见思路更优的解法面试官喜欢的 常见思路 要选出最小的前K个数首先我们会想到排排升序建大堆排降序建小堆 一个直观的想法是使用小根堆起始将所有元素放入堆中然后再从堆中取出k 个元素并「顺序」构造答案。你写出了用小堆解决的代码 void swap(int* a, int* b) {int t *a;*a *b;*b t; }void minHeapify(int arr[], int n, int i) {int smallest i;int left 2 * i 1;int right 2 * i 2; if (left n arr[left] arr[smallest])smallest left;if (right n arr[right] arr[smallest])smallest right;if (smallest ! i) {swap(arr[i], arr[smallest]);minHeapify(arr, n, smallest);} }void buildMinHeap(int arr[], int n) {// Index of last non-leaf nodeint startIdx (n / 2) - 1;for (int i startIdx; i 0; i--)minHeapify(arr, n, i); }int extractMin(int arr[], int* n) {if (*n 0)return INT_MAX;if (*n 1) {(*n)--;return arr[0];}int root arr[0];arr[0] arr[*n - 1];(*n)--;minHeapify(arr, *n, 0);return root; }void findKSmallest(int arr[], int n, int k) {buildMinHeap(arr, n);printf(The k smallest elements are: );for (int i 0; i k; i) {printf(%d , extractMin(arr, n));}printf(\n); } 分析一下不难发现 建堆的复杂度是 ON 每次提取的复杂度是 O(logN) 总的复杂度ONlogN 面试官看到你的代码后并不满意并要求你进行优化 更优的解法面试官喜欢的 使用大根堆! 当处理到原始 arr[i] 时根据堆内元素个数以及其与堆顶元素的关系分情况讨论 堆内元素不足 k 个直接将 arr[i] 放入堆内 堆内元素为 k 个根据 arr[i] 与堆顶元素的大小关系分情况讨论 arr[i]heapToparr[i] 不可能属于第 k 小数已有 k 个元素在堆中直接丢弃 arr[i] arr[i]heapToparr[i] 可能属于第 k 小数弹出堆顶元素并放入 arr[i]。 你出写了如下代码。 void swap(int* a, int* b) {int t *a;*a *b;*b t; }void maxHeapify(int arr[], int n, int i) {int largest i;int left 2 * i 1;int right 2 * i 2; // 如果左子节点大于当前节点则更新最大值索引if (left n arr[left] arr[largest])largest left;// 如果右子节点大于当前节点则更新最大值索引if (right n arr[right] arr[largest])largest right;// 如果最大值索引不是当前节点则交换并递归调整子树if (largest ! i) {swap(arr[i], arr[largest]);maxHeapify(arr, n, largest);} }void buildMaxHeap(int arr[], int n) {// 最后一个非叶子节点的索引int startIdx (n / 2) - 1;// 从最后一个非叶子节点开始逆序遍历并调整每个节点for (int i startIdx; i 0; i--)maxHeapify(arr, n, i); }// 提取堆顶元素并调整堆的函数 int extractMax(int arr[], int* n) {if (*n 0)return INT_MAX; // 堆为空时返回最大整数值if (*n 1) {(*n)--;return arr[0]; // 堆只有一个元素时直接返回}// 存储并移除堆顶元素int root arr[0];arr[0] arr[*n - 1];(*n)--;maxHeapify(arr, *n, 0); // 调整堆以保持大根堆性质return root; }void findKSmallest(int arr[], int n, int k) {// 构建包含前k个元素的大根堆int heap[k];for (int i 0; i k; i) {heap[i] arr[i];}buildMaxHeap(heap, k);// 遍历剩余元素for (int i k; i n; i) {// 如果当前元素小于堆顶元素则替换堆顶元素并重新调整堆if (arr[i] heap[0]) {heap[0] arr[i];maxHeapify(heap, k, 0);}} } 时间复杂度ONlogK当N无限大时logK可以忽略 比ONlogN更优

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

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

相关文章

静态库.a与.so库文件的生成与使用

任务一.用gcc生成静态库和动态库 1.1在ubuntu系统中创建一个目录来保存程序文件并编辑三个程序hello.h,hello.c,main.c。 先通过后端代码创建目录然后用vim文本编辑器编辑三个程序文件 程序1 hello.h:程序2 hello.c:程…

CF2145D Inversion Value of a Permutation

错题好题集第二篇。 题意 你需要构造一个长度为 \(n\) 的排列,使得它的逆序值恰好为 \(k\)。逆序值的定义 对于一个排列 $p$,我们将其逆序值定义为至少包含一个逆序对的子段的数量。形式上,这就是满足以下条件的一对…

朔州如何做百度的网站网站数据库做好了 怎么做网页

一、服务器准备 1、服务器配置 准备3台服务器,建议最低配置如下(阿里云大约每台每月六百多): centos7.4 8c 16G 39.101.192.109 node001 39.101.179.3 node002 39.99.236.205 node003 为服务器开启外网端口访问 7180、8900 2…

阿里 做网站北京市住房建设网站

SpringBoot教程(十六) | SpringBoot集成swagger(全网最全) 一. 接口文档概述 swagger是当下比较流行的实时接口文文档生成工具。接口文档是当前前后端分离项目中必不可少的工具,在前后端开发之前,后端要先出接口文档&#xff0c…

网站开发工具蜡笔小新网页设计制作网站大一素材

作为一个站长,当你的网站流量逐渐变大时,就会发现目前的主机无法满足正常需要,就要更换更高一级的云主机或VPS主机,新手就需要使用WinSCP和Putty,来管理主机。IIS7服务器管理工具可以批量管理、定时上传下载、同步操作…

网站建设公司自适应源码互联网技术发展现状

macOs系统安装软件的疑问 所有问题mac系统文件结构我用mac安装软件,不用像windows一样创建文件夹吗只能安装到Applications文件夹吗安装程序的指南和提供的安装选项是什么软件安装在Applications下的/appName文件夹,它的所有数据都会在该文件夹吗如果卸载…

网站开发公司怎么找客户开发工具在哪里 word

汇编语言应该是我们如今学的最“低级”的语言了,由于如今不会再有人去学机器语言了。而汇编语言还在一些硬件或者嵌入式设备上使用并开发着。下面资料是为了大学的汇编考试整理的资料,如今与大家分享,希望能给大家提供帮助。 汇编语言程序设计…

牛客刷题-Day8

动态规划1:线性dp、背包问题,区间 https://ac.nowcoder.com/acm/contest/24213?from=acdiscuss牛客刷题-Day8 今日刷题:\(1036-1040\) 1036 凸多边形的划分 题目描述 给定一个具有 \(N\) 个顶点的凸多边形,将顶点…

网站开发 博客长沙百度网站制作

1、父组件可以使用 props 把数据传给子组件。 2、子组件可以使用 $emit 触发父组件的自定义事件。 vm.$emit( event, arg ) //触发当前实例上的事件 vm.$on( event, fn );//监听event事件后运行 fn&#xff1b; 例如&#xff1a;子组件&#xff1a; <template><di…

泉州模板做网站厦门酒店网站建设

在本篇博客中&#xff0c;我们将探讨 UserDetailsService 的重要性&#xff0c;以及如何通过实际示例在 Spring Security 中实现它。 理解 UserDetailsService UserDetailsService 是 Spring Security 提供的一个接口&#xff0c;用于在认证过程中获取用户详细信息。DaoAuthe…

石家庄制作网站的公司简介德州网络

在当前的项目中&#xff0c;使用的是stm32mp157&#xff0c;在烧写系统固件时&#xff0c;有少量的板子使用stm32的stm32cubeProgrammer烧录软件&#xff0c;通过USB接口&#xff0c;死活就是烧录不上&#xff0c;烧录到一半&#xff0c;usb直接就断开了&#xff0c;没办法&…

Educational Codeforces Round 183 (Rated for Div. 2)

A. Candies for Nephews 题意:求大于等于\(n\)的最小\(3\)的倍数。点击查看代码 #include <bits/stdc++.h>using i64 = long long;void solve() {int n;std::cin >> n;std::cout << (n + 2) / 3 * …

免费域名怎么做网站我想做代理商

SnowNLP: 一个简单的中文文本处理库 SnowNLP是一个python写的类库&#xff0c;可以方便的处理中文文本内容&#xff0c;是受到了TextBlob的启发而写的&#xff0c;由于现在大部分的自然语言处理库基本都是针对英文的&#xff0c;于是写了一个方便处理中文的类库&#xff0c;并且…

网站开发维护多少钱软件项目管理考试题及答案

maven打jar包错误 引起错误的原因是在 SpringbootStudyApplication 类中&#xff0c;加入了下面注释中的代码&#xff08;监听项目启动&#xff0c;然后打开浏览器&#xff09;&#xff0c;单纯删掉注释代码是无法解决问题的&#xff0c;可能的原因是由于加入这部分代码而impo…

做猎头要用的网站知乎超简单网页制作模板

文章目录1&#xff0e;命令格式2&#xff0e;命令功能3&#xff0e;命令参数4&#xff0e;命令实例1、文件改名&#xff08; 重命名&#xff09;2、移动文件3、将test目录下的文件text1.txt text2.txt text3.txt移动到目录mv中。4、将文件file1改名为file2&#xff0c;如果file…

长春网站建设那家好如何做网站活动

[js] 使用ajax请求真的不安全吗&#xff1f;为什么&#xff1f; AJAX是发送HTTP请求的一种方式&#xff0c;只不过浏览器给它加了一个同源策略而已。 所以从这一点可以得出一个结论&#xff1a;AJAX本质上安全性和HTTP请求一样个人简介 我是歌谣&#xff0c;欢迎和大家一起交…

广州网站优化工具服务静态网站注入

动态代理jdk的Proxy与Spring的CGlib 文章目录 动态代理jdk的Proxy与Spring的CGlib1. 为什么要使用动态代理&#xff1f;2. JDK Proxy 动态代理面向接口的动态代理3. CGlib动态代理4. 两个动态代理的区别 1. 为什么要使用动态代理&#xff1f; 动态代理&#xff1a;在不改变原有…

高三闲话 #2

“那你们现在坐在这,一定是失败了。”小食堂外面有一只猫,每天吃饭都可以看到它趴在那里,被投喂一些食物。不过我在它眼中看不到任何“乞食”的色彩,更像是在等待被“进贡”。我们每天吃完饭回去都要欣赏那只猫,G…

D. Inversion Value of a Permutation edu div2

题意:给出一个排列,其逆序值为:包含至少一个逆序对的子区间数量 给出n和k,要求构造一个长度为n的,逆序值为k的排列 很显然,如果一个排列内,若是有两个位置逆序,那么以这两个位置为起点,找到的所有子区间可能会…

Mineserver

Mineserverhttps://github.com/CoolManBob/mineserver 项目简介(根据 README)名称:Mineserver用途:一个 Minecraft Alpha(早期版 Minecraft) 的 自定义服务器软件,用 C++ 编写,支持 Windows 和 Linux 平台。Gi…