zoukankan      html  css  js  c++  java
  • 笔试数组输入模板

      IT笔试中算法题属于必备,为了几句输入代码浪费时间实在不应该,大家也都是从一开始就常常使用输入输出写简单的程序。

      一般情况下笔试中的输入很符合常理,让你接受几个数字或其他变量。但是常常会有让你接受数组的情况。

      在数组的情况中,一般会事先给你一个数字标示数组大小然后告诉你每个数是多少。在二般的情况下则直接告诉你数组内容是什么。

      众所周知,Java支持动态数组,C++中又可以使用vector容器,Python本人不懂但也可以。C语言这个很尴尬,用指针也是可以变相实现动态数组的,但是本身自带的库函数相对少,用来做笔试题有些尴尬。

    1、 一般情况

      给你两行数,或者一行数,前几个数中有数组的大小。形如:

    3             //数组大小
    4 5 6         //数组内容

    1.1 Java

    1.1.1 Java动态数组

    在Java中因为支持动态数组,所以在一般情况下,先定义一个接受数组大小的变量,而后建立动态数组。

     1 package com.zdt.com;
     2 
     3 import java.util.Arrays;
     4 import java.util.Scanner;
     5 
     6 public class main {
     7 
     8     public static void main (String args[]){
     9             Scanner scanner=new Scanner(System.in);
    10             int m=scanner.nextInt();
    11             int[] v = new int[m];
    12             for(int i =0; i<v.length;i++){
    13                 v[i]=scanner.nextInt();
    14             }
    15             scanner.close();
    16         }
    17 }

    1.2 C++

      在C++中虽然支持vector容器,但是不支持动态数组的,所以我们有两种思路来解决。

    1.2.1 C++动态数组实现

      利用指针构建动态数组,如果有兴趣看动态数组可以看这篇博客学习下。http://blog.csdn.net/bzhxuexi/article/details/17230073

    1.2.2 C++ vector实现

      利用输入控制接收数组元素进入vector容器。

      vector容器并不需要事先定义大小,每次新建一个vector时都会先在内存中分配一块内存,在存储元素时,使用push_back即可从最后插入元素,如果这块内存不够时会分配给它新的更大的一块儿内存,将原来的元素复制过去后继续使用。

     1 #include "stdafx.h"
     2 #include <iostream>
     3 #include <vector>
     4 using namespace std;
     5 
     6 int _tmain(int argc, _TCHAR* argv[])
     7 {
     8     int num;
     9     cin >> num;
    10     vector<int> nums;
    11     int temp_num;
    12     for (int i = 0; i < num; i++)
    13     {
    14         cin >> temp_num;
    15         nums.push_back(temp_num);
    16     }
    17     return 0;
    18 }

    喜欢用vector实现也是因为vector也有好多函数可以用。

    2、 二般情况

    直接是数组的内容。

    1 2 3 4 5 6             //数组内容

    2.1 Java

    2.1.1 Java输入控制

      在二般情况下,我们不知道数组大小是多少,所以我们只能根据行来接收,一行为一个数组内容,一般为空格隔开

    2.2 C++

    2.2.1 C++输入控制

      本方法参照的是博客:http://blog.csdn.net/ldz1943/article/details/46311059

     1 #include "stdafx.h"
     2 #include <iostream>
     3 #include <vector>
     4 using namespace std;
     5 
     6 int _tmain(int argc, _TCHAR* argv[])
     7 {
     8     int temp_num;
     9     char temp_ch;
    10     vector<int> nums;
    11     while ((temp_ch = cin.get()) != '
    ')
    12     {
    13         cin.putback(temp_ch);
    14         cin >> temp_num;
    15         nums.push_back(temp_num);
    16     }
    17     return 0;
    18 }
  • 相关阅读:
    【BZOJ1930】[Shoi2003]pacman 吃豆豆 最大费用最大流
    【BZOJ3444】最后的晚餐 乱搞
    C语言的 32个关键之和9个控制语言之关键字
    10进制如何转二进制
    (转)这些开源项目,你都知道吗?(持续更新中...)[原创]
    如何将一个HTML页面嵌套在另一个页面中
    SNMP学习笔记之SNMPWALK 命令
    Linux学习笔记之Centos7设置Linux静态IP
    Linux学习笔记之Linux通过yum安装桌面
    Linux学习笔记之Linux启动级别
  • 原文地址:https://www.cnblogs.com/zdtiio/p/7510469.html
Copyright © 2011-2022 走看看