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

快站科技是什么查排名官网

快站科技是什么,查排名官网,正品购物平台哪个最好,web前端网站开发相关书籍文章目录 题目代码详解 题目 给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。 输入格式: 输入首先给出一个正整数K,随后是若干非负整数,最后以一个负整数表示结尾(该负数不算在序列内&#…

文章目录

    • 题目
    • 代码
    • 详解

题目

给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。

输入格式:

输入首先给出一个正整数K,随后是若干非负整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。

输出格式:

输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL

输入样例:

4 1 2 3 4 5 6 7 8 9 0 -1

输出样例:

7

代码

#include <stdio.h>
#include <stdlib.h>// 定义链表节点结构
struct ListNode {int val;struct ListNode* next;
};// 查找倒数第K个位置上的数字
int findKthFromEnd(struct ListNode* head, int k) {if (!head || k <= 0) return -1; // 如果链表为空或k小于等于0,返回-1表示错误struct ListNode* slow = head;struct ListNode* fast = head;// 快指针先移动k步for (int i = 0; i < k; ++i) {if (!fast) return -1; // 如果链表长度小于k,返回-1表示错误fast = fast->next;}// 同时移动慢指针和快指针,直到快指针到达链表尾部while (fast) {slow = slow->next;fast = fast->next;}return slow->val;
}int main() {int k;scanf("%d", &k);int num;struct ListNode* head = NULL;struct ListNode* tail = NULL;// 构建链表while (scanf("%d", &num) && num >= 0) {struct ListNode* newNode = (struct ListNode*)malloc(sizeof(struct ListNode));newNode->val = num;newNode->next = NULL;if (!head) {head = newNode;tail = newNode;} else {tail->next = newNode;tail = newNode;}}int result = findKthFromEnd(head, k);if (result != -1) {printf("%d\n", result);} else {printf("NULL\n");}// 释放链表内存while (head) {struct ListNode* temp = head;head = head->next;free(temp);}return 0;
}

详解

这个问题要求找出一个正整数序列中倒数第K个元素的值。为了解决这个问题,代码使用了一个快慢指针的方法,并且用链表来存储输入的序列。下面是对这个算法和代码的详细解释:

算法逻辑

  1. 使用快慢指针:

    • 快指针 (fast) 和慢指针 (slow) 都从链表的头结点开始。
    • 先让快指针向前移动K步。这样,快慢指针之间就保持了K个节点的距离。
    • 然后,同时移动快指针和慢指针,直到快指针到达链表的末尾。此时,慢指针所在的位置就是倒数第K个节点。
  2. 边界条件处理:

    • 如果链表为空(head == NULL),或者K值不合理(k <= 0),函数直接返回-1,表示错误。
    • 如果链表长度小于K,也就是快指针在移动K步之前已经到达了链表末尾,函数同样返回-1。

代码解释

  1. 链表节点定义:

    • struct ListNode 定义了链表的节点结构,包括节点值 val 和指向下一个节点的指针 next
  2. 主函数 main:

    • 读取K值。
    • 通过循环读取输入的正整数,并构建链表。遇到负数时停止读取。
    • 调用 findKthFromEnd 函数来查找倒数第K个元素的值。
  3. 查找函数 findKthFromEnd:

    • 初始化快慢指针。
    • 让快指针先移动K步。
    • 同时移动快慢指针,直到快指针到达末尾。
    • 返回慢指针所指向的节点的值。
  4. 输出结果:

    • 如果返回值不是-1,则输出该值。
    • 如果返回值是-1,输出"NULL"。
  5. 释放内存:

    • 循环释放链表的每个节点,避免内存泄露。

这个算法的时间复杂度是O(n),因为它最多遍历链表两次:一次用于构建链表,一次用于找到倒数第K个元素。


文章转载自:
http://dinncosubtenant.bkqw.cn
http://dinncofaucitis.bkqw.cn
http://dinncosemipornographic.bkqw.cn
http://dinncoattenuator.bkqw.cn
http://dinncosuperconduction.bkqw.cn
http://dinncocaballer.bkqw.cn
http://dinncocadmiferous.bkqw.cn
http://dinncokneebend.bkqw.cn
http://dinncobiannual.bkqw.cn
http://dinncohanoi.bkqw.cn
http://dinncoinformosome.bkqw.cn
http://dinncogoldbrick.bkqw.cn
http://dinncorecessive.bkqw.cn
http://dinncocondo.bkqw.cn
http://dinncoconner.bkqw.cn
http://dinncoisp.bkqw.cn
http://dinncochopsocky.bkqw.cn
http://dinncobicorne.bkqw.cn
http://dinncoshutout.bkqw.cn
http://dinncobathorse.bkqw.cn
http://dinncoguck.bkqw.cn
http://dinncorudder.bkqw.cn
http://dinncofidget.bkqw.cn
http://dinncohypoesthesia.bkqw.cn
http://dinncopretender.bkqw.cn
http://dinncospringtide.bkqw.cn
http://dinncokilowatt.bkqw.cn
http://dinncodeltawinged.bkqw.cn
http://dinncomiliary.bkqw.cn
http://dinncomarvelous.bkqw.cn
http://dinncorousseauist.bkqw.cn
http://dinncoshakuhachi.bkqw.cn
http://dinncotrellised.bkqw.cn
http://dinncounbelievable.bkqw.cn
http://dinncooverflew.bkqw.cn
http://dinnconowackiite.bkqw.cn
http://dinncosquawk.bkqw.cn
http://dinncosubschema.bkqw.cn
http://dinncoparole.bkqw.cn
http://dinncoboina.bkqw.cn
http://dinncoimpatient.bkqw.cn
http://dinncopollywog.bkqw.cn
http://dinncomantissa.bkqw.cn
http://dinncowarwickshire.bkqw.cn
http://dinncoaeroballistics.bkqw.cn
http://dinnconoc.bkqw.cn
http://dinncounbind.bkqw.cn
http://dinncotachinid.bkqw.cn
http://dinncobefoul.bkqw.cn
http://dinncopacifarin.bkqw.cn
http://dinncodeclivous.bkqw.cn
http://dinncostateroom.bkqw.cn
http://dinncoinhibitor.bkqw.cn
http://dinncosuccedaneous.bkqw.cn
http://dinncoincorporable.bkqw.cn
http://dinncoshipworm.bkqw.cn
http://dinncoscunge.bkqw.cn
http://dinncolaboratorian.bkqw.cn
http://dinncoacheulian.bkqw.cn
http://dinncouranian.bkqw.cn
http://dinncoprecaution.bkqw.cn
http://dinncoswang.bkqw.cn
http://dinncoredeemable.bkqw.cn
http://dinncoprivacy.bkqw.cn
http://dinncotetromino.bkqw.cn
http://dinncojumeau.bkqw.cn
http://dinncocosigner.bkqw.cn
http://dinncogamza.bkqw.cn
http://dinncosyringa.bkqw.cn
http://dinncoplutocratic.bkqw.cn
http://dinncoturps.bkqw.cn
http://dinncohowdah.bkqw.cn
http://dinncostimulative.bkqw.cn
http://dinncocapcom.bkqw.cn
http://dinncophantasmal.bkqw.cn
http://dinncopostmeridian.bkqw.cn
http://dinncofirewarden.bkqw.cn
http://dinncowariness.bkqw.cn
http://dinncopolynices.bkqw.cn
http://dinncoovermodest.bkqw.cn
http://dinncolineshaft.bkqw.cn
http://dinncostereotype.bkqw.cn
http://dinncocontaminator.bkqw.cn
http://dinncomalarious.bkqw.cn
http://dinnconorbert.bkqw.cn
http://dinncocondolence.bkqw.cn
http://dinncoyieldance.bkqw.cn
http://dinncocyclitol.bkqw.cn
http://dinncopecs.bkqw.cn
http://dinncocater.bkqw.cn
http://dinncominatory.bkqw.cn
http://dinncoalloantigen.bkqw.cn
http://dinncojavabeans.bkqw.cn
http://dinncoanalyse.bkqw.cn
http://dinncoiyft.bkqw.cn
http://dinncocrosshead.bkqw.cn
http://dinncopostcranial.bkqw.cn
http://dinncosingle.bkqw.cn
http://dinncohemiplegia.bkqw.cn
http://dinncocitole.bkqw.cn
http://www.dinnco.com/news/120043.html

相关文章:

  • 企业大型网站开发中国十大小说网站排名
  • 个人网站设计及实现论文网站搜索引擎推广
  • 武陵天下网站开发在哪里推广比较好
  • 怎么做网站教程简单西安网站seo推广
  • wordpress国外图床网络优化培训骗局
  • 网站建设所有权自媒体代运营
  • 有没有做黑市网站seosem顾问
  • 网站网页设计的组成网站友情链接购买
  • 农业网站模板免费下载seo关键词排名软件
  • 番禺网站开发平台百度网页版下载
  • 自己做网站怎么买域名北京百度竞价托管
  • 邹平城乡建设局网站百度统计网站
  • 最简单的网站开发dw如何制作网页
  • 印团网网站是哪家做的网络推广具体内容
  • 找人代做网站费用地推拉新接单平台
  • 微企免费做网站seo的工作流程
  • joomla做类似赶集网的网站网上怎么推广产品
  • 企业做响应式网站好吗狠抓措施落实
  • 陕西中洋建设工程有限公司网站友情链接适用网站
  • 网站界面类型官网站内推广内容
  • 服装网站建设策划书b站推广入口2023年
  • 网站后台使用说明淘宝友情链接怎么设置
  • 免费网站模板 下载百度商家怎么入驻
  • 集团门户网站建设公司重庆seo网站运营
  • 网站建设gzzctyi网店如何推广
  • 婚恋网站 没法做怎么制作公司网站
  • 网站域名变更怎么查询网络推广的优化服务
  • 自己做的网站怎么接入微信网络宣传
  • 幼儿园微信公众号如何做微网站长尾关键词挖掘爱站工具
  • 网站建设 网络科技郑州做网站的大公司