7-19 求链式线性表的倒数第K项(20 分) 给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字. 输入格式: 输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理). 输出格式: 输出倒数第K个位置上的数据.如果这个位置不存在,输出错误信息NULL. 输入样例: 4 1 2 3 4 5 6 7 8 9 0 -1 输出样例: 7思路:这个链表都不具有随机性,脑袋有坑用链表??然后看了下百度上有人用链表直接遍历就行,没意思没意思…
给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字. 输入格式说明: 输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理). 输出格式说明: 输出倒数第K个位置上的数据.如果这个位置不存在,输出错误信息“NULL”. 样例输入与输出: 序号 输入 输出 1 4 1 2 3 4 5 6 7 8 9 0 -1 7 2 6 3 6 7 8 2 -2 NULL //注意,这一题,题目很简单,但是可能数据量会很大,如果不用二分来搜索肯定…
给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字. 输入格式: 输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理). 输出格式: 输出倒数第K个位置上的数据.如果这个位置不存在,输出错误信息NULL. 输入样例: 4 1 2 3 4 5 6 7 8 9 0 -1 输出样例: 7 代码: #include <stdio.h> #include <stdlib.h> #include <string.h&g…
给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字. 输入格式: 输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理). 输出格式: 输出倒数第K个位置上的数据.如果这个位置不存在,输出错误信息NULL. 输入样例: 4 1 2 3 4 5 6 7 8 9 0 -1 输出样例: 7 解题思路:寻找倒数第K项,这里所用的方法是定义两个指针,让第一个指针先走k步,然后两个指针一起移动,第一个指针移到末尾的时候,第二个指针就到了倒数…
package ch9; public class LinkList <T>{ private class Node { //保存节点的数据 private T data; //指向下一个节点的引用 private Node next; public Node(T data,Node next) { this.data = data; this.next = next; } } //保存该链表的头节点 private Node header; //保存该链表的尾节点 private Node…
6-1 求链式表的表长 (10 分)   本题要求实现一个函数,求链式表的表长. 函数接口定义: int Length( List L ); 其中List结构定义如下: typedef struct LNode *PtrToLNode; struct LNode { ElementType Data; PtrToLNode Next; }; typedef PtrToLNode List; L是给定单链表,函数Length要返回链式表的长度. 裁判测试程序样例: #include <stdio.…
package bianchengti; /* * 有一分数序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13.... * 求出这个数列的第M到N项之和(M>2,N>2,N>M) */ public class getSumByMN { //返回项:1, 2, 3, 5, 8, 13, 21.... public static int getItem(int n) { if(n<0) return 0; int []array = {0,1,2}; if(n<…
题目链接 https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?tpId=13&tqId=11167&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 题意 求链表倒数第k个节点,计数从1开始. 题解 法一:遍历两遍. 第一遍求链表长度,第二遍直接找到节点. 法二:遍历一遍.双…
这个题虽然简单,但是一定要细心,bug-free 能力很重要. 分析: 如果不知道链表的长度,可以采用双指针的方法,让一个指针先走 k 步,然后两个指针同时走, 前面的指针变成 NULL时, 第一个指针即是倒数第k 个节点.. 但是,考虑 k < 0, k > length 等情况.. 关于双指针的另一个典型例题就是 求两链表是否相交,见 http://blog.csdn.net/shoulinjun/article/details/20127223 // copyright @ L.J.SH…
/* 题目: 链表中倒数第k个节点 */ /* 思路: 考虑边界条件:链表为空,k值超过链表长度. 双指针: q指针指向第k个节点,p指针指向第1个节点. q指针指向最后一个节点,p指针指向倒数第k个节点. */ #include<iostream> #include<string.h> #include<algorithm> #include<cmath> #include<stdio.h> using namespace std; struc…