PTAタイトルセットのデータ構造とアルゴリズム(中国)7-19

PTAタイトルセットのデータ構造とアルゴリズム(中国)7-19

最後から二番目の用語Kを求めて表7-19直鎖(20分)
 

正の整数のシリーズに与えられた、最後から二番目のK位置の番号を見つけることが可能効率的なアルゴリズムを設計してください。

入力フォーマット:

まず、入力の正の整数の数字が続く正の整数Kは、最終的に負の整数の末尾に(負の数は、配列ではなく、処理されていません)。

出力フォーマット:

K番目の位置の逆の出力データ。この位置は、出力エラー・メッセージが存在しない場合NULL

サンプル入力:

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

出力例:

7
トピック分析:効率的なランクによって配列が他の人の背後にある非常に高速であるため、より良いやっているのを見つけるためにビットを検索するために、配列を見てみたかったです
1  の#define _CRT_SECURE_NO_WARNINGS
 2の#include <stdio.hの>
 3の#include < malloc関数 .H>
 4  
5  int型のサイズ;
6  INT )(メイン
 7  {
 8      int型K。
9      INT *アレイ=(INT *)はmallocはsizeofINT)* 1000000 )。
10      のscanf(" %dの"、&K)。
11      一方、1 12      {
 13         int型NUM;
14          のscanf(" %dの"、およびNUM)。
15          であれば(NUM == - 1 16              ブレーク17          アレイ【サイズ++] = NUM。
18      }
 19      K =サイズ- kは。
20      もし(K < 0 || K> = サイズ)
 21          のprintf(" NULL " )。
22      他の
23          のprintf(" %dの" 、配列[K])。
24      フリー(アレイ)。
25      リターン 0 ;
26 }
コードの表示

 

他の人がやっています

1つ の#define _CRT_SECURE_NO_WARNINGS
 2の#include <stdio.hの>
 3の#include < malloc関数 .H>
 4  
5  
6  INT メイン()
 7  {
 8      int型 K = 0 9      int型のサイズ= 0 ;
10      のscanf(" %dの"、&K)。
11      もし(K <= 0 12      {
 13          のprintf(" NULL " )。
14          リターン 0 ;
15      }
 16      INT *アレイは=(INT *)はmallocはsizeofINT)* K); // 専用メモリ数Kを
17      INTフラグ=で0 ;
 18である     一方、1 19      {
 20は、         INT NUM;
 21は、          scanfの(" Dの%、&NUM);
 22である         場合(NUM == - 1// 出-1入力場合
23がある             BREAK ;
 24          アレイ【サイズ++] = NUM。
25          であれば(フラグ&&サイズ> =!K)
 26              フラグ= 1 27          サイズ(%)= K。
28      }
 29      もし(!フラッグ)
 30          のprintf(" NULL " );
31      他の
32          のprintf(" %dの" 、配列[サイズ])。
33      フリー(アレイ)。
34      リターン 0 35 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/57one/p/11626881.html