zoukankan      html  css  js  c++  java
  • 五一训练礼包—FindCard

    I-FindCard

    Content

      · 题目回溯

      · 题目分析

      · 可行代码

    (一)题目回溯

      DISCRIPTION

     

       INPUT

     

       OUTPUT

     

      EXAMPILE

       NOTE

      

    (二)题目分析

      1. 找出 ti 在数组中的位置,并记录

      2. 将 ti 前的所有数字往后移动一位

      3. 重复步骤1、2直到找完所有数字

    (三)可行代码

    #include <iostream>
    using namespace std;
    int main()
    {
        int n, q;
        cin >> n >> q;
        int cards[n], queries[q], position[q];
        for (int i = 0; i < n; i++)
            cin >> cards[i];
        for (int i = 0; i < q; i++)
            cin >> queries[i];
        for (int i = 0; i < q; i++)
        {
            for (int j = 0; j < n; j++)
                if (cards[j] == queries[i])
                {
                    position[i] = j;
                    break;
                }
            int temp = cards[position[i]];
            for (int j = position[i]; j > 0; j--)
                cards[j] = cards[j - 1];
            cards[0] = temp;
        }
        for (int i = 0; i < q; i++)
        {
            cout << position[i] + 1;
            if (i < q - 1)
                cout << ' ';
        }
        return 0;
    }
  • 相关阅读:
    Search in Rotated Sorted Array
    Search insert position
    二分法感悟
    The Smallest Difference
    Lintcode: Nuts & Bolts Problem
    167. Two Sum II
    登录页面
    注册页面
    在线版简易计算器
    简单工厂模式
  • 原文地址:https://www.cnblogs.com/kirk-notes/p/14729513.html
Copyright © 2011-2022 走看看