筆試面試題之遞迴

1.字串的全排列。全排列就是從第一個數起每個數分別與它後面的數交換。遞迴實現從集合中依次選出每一個元素,作為排列的第一個元素,然後對剩餘的元素進行全排列,如此遞迴處理,從而得到所有元素的全排列。以對字串abc進行全排列為例,我們可以這麼做:以abc為例固定a,求後面bc的排列:abc,acb,求好後,a和b交換,得到bac固定b,求後面ac的排列:bac,bca,求好後,a和c交換,得到cba固定c,求後面ba的排列:cba,cab。代碼可如下編寫所示:template

筆試面試題之Fibonacci數列

跳台階問題。一個台階總共有n 級,如果一次可以跳1 級,也可以跳2 級。求總共有多少總跳法,並分析演算法的時間複雜度。我們把n級台階時的跳法看成是n的函數,記為f(n)。當n>2時,第一次跳的時候就有兩種不同的選擇:一是第一次只跳1級,此時跳法數目等於後面剩下的n-1級台階的跳法數目,即為f(n-1);另外一種選擇是第一次跳2級,此時跳法數目等於後面剩下的n-2級台階的跳法數目,即為f(n-2)。因此n級台階時的不同跳法的總數f(n)=f(n-1)+(f-2)。long long

UVA 11988

題意:在給定的字串中可能出現,‘[’,‘]’這兩個符號,[代表返回字串頭,]代表返回字串尾。求原串。這題可以用雙向隊列解決。按字串給定的順序分別將[號壓入隊頭,]號壓入隊尾即可。#include <cmath>#include <ctime>#include <iostream>#include <string>#include <vector>#include <cstdio>#include

筆試面試題之尾碼數組

給定一個字串,求出其最長的重複子串。思路:使用尾碼數組,對一個字串產生相應的尾碼數組後,然後再排序,排完序依次檢測相鄰的兩個字串的開頭公用部分。這樣的時間複雜度為:產生尾碼數組 O(N),排序 O(NlogN*N) 最後面的 N 是因為字串比較也是 O(N),依次檢測相鄰的兩個字串 O(N * N),總的時間複雜度是

njupt 會漏的棧

出題原意是考雙端隊列,但是因為A題要讓大家都過,所以把資料搞得很小。第一份代碼是純數組類比棧暴搞的,遇到大資料會完蛋,第二份是用雙端隊列類比,可以勝任大資料的情況。/* 純數組類比棧暴搞*/#include <iostream>using namespace std;int S[10005];int K, top , m, x, bottom;int main(){ string s; cin >> K >> m; while(m--)

njupt 字典序最大的出棧序列

題意:給出入棧序列{A},保證{A}各個元素值各不相等,輸出字典序最大的出棧序列.如入棧序列{A} = 1, 2, 9, 4, 6, 5則字典序最大的出棧序列為9, 6, 5, 4, 2 1/* 棧的性質就是先進後出,所以對於依次入棧的兩個元素a,b,有兩種情況: <1>先壓a進棧,不彈出,再壓b進棧,則最終的出棧序列a一定位於b之後。 <2>要想a位於b之前,則只能在b進棧之前把a彈出。

UVA 11997

K Smallest SumsTime Limit: 1000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu[Submit]   [Go Back]   [Status]  DescriptionProblem KK Smallest SumsYou're given k arrays, each array has k integers. There are kk ways to pick exactly one

RMQ with Shifts

RMQ with ShiftsIn the traditional RMQ (Range Minimum Query) problem, we have a static array A. Then for each query (L, R)(LR), we report the minimum value among A[L], A[L + 1], ..., A[R]. Note that the indices start from 1, i.e. the left-most

UVA 1513

題目 :http://acm.hust.edu.cn:8080/judge/problem/viewProblem.action?id=36169樹狀數組。。用數組hash記錄每次刪除,插入。#include <stdio.h>#include <stdlib.h>#include <math.h>#include <string.h>#include <iostream>#include

UVA 11991

Easy Problem from Rujia Liu?Time Limit: 1000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu[Submit]   [Go Back]   [Status]  DescriptionProblem EEasy Problem from Rujia Liu?Though Rujia Liu usually sets hard problems for contests (for

uestc 1546 括弧序列 區間線段樹

/*    區間線段樹  區間覆蓋   括弧序列  lazy    題意:給一串括弧序列,問[l,r]的括弧序列是否合法。合法的定義:1,Empty 2,S合法,則(S)合法 3,A和B合法,則AB合法。有兩種操作,一種一般區間修改(reverse, set),還有Query.    思路:之前一遇到括弧序列就跪,因為我到現在都搞不清楚what is regular brackets sequence...          所以在大牛blog上看到下面這句話的時候心情很激動~~from :

UVA 11995

Problem II Can Guess the Data Structure!There is a bag-like data structure, supporting two operations:1 xThrow an element x into the bag.2Take out an element from the bag.Given a sequence of operations with return values, you're going to guess the

UVA 12086

題目:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3238簡單樹狀數組。。#include <cmath>#include <ctime>#include <iostream>#include <string>#include <vector>#include <

差分約束小結

差分約束(difference

UVA 1400

題目:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4146經典線段樹。。真的很經典的一個題。但是我斷斷續續寫了接近兩天才AC。主要是找BUG。。很多東西沒有考慮完全,就開始寫了。在那個沒有思考完全的代碼下修改,太蛋碎了。主要存放 3個東西,一個最長首碼。pre_max,  區間連續的最大和,all_max,還有存放尾碼 suf_

1024!末尾有幾個零

不是5的倍數無論和哪個相乘都不可能出現個位為0的結果。25 * 4 = 100,能產生兩個0,同理(75 = 25 * 3 = 5 * 5 *3)* 4 = 300;(125 = 5 * 5 * 5 )* 8 = 1000;即一個數包含多少個因子5其就可以同足夠的偶數相乘產生相同個數的末位0。總結如下:N的階乘中末位0的個數為:N/5 + N/25 + N/125 ……#include <stdio.h>int zero_count(int n);int main(int argc

njupt Keroro侵略地球

E.

UVA 11992

Fast Matrix OperationsTime Limit:5000MS Memory Limit:Unknown 64bit IO Format: %lld & %llu[Submit]   [Go Back]   [Status]  DescriptionProblem FFast Matrix OperationsThere is a matrix containing at most 106 elements divided into r rows and c

HDU 2433 最短路

/*    最短路  好題        題意:給出邊建圖,然後分別刪除各條邊,問每一次刪邊後的所有端點的兩兩最短路之和,若有一對端點不連通,則返回INF   

筆試面試題之字串

最大子序列最大子序列是要找出由數組成的一維數組中和最大的連續子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,達到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和是6。你已經看出來了,找最大子序列的方法很簡單,只要前i項的和還沒有小於0那麼子序列就一直向後擴充,否則丟棄之前的子序列開始新的子序列,同時我們要記下各個子序列的和,最後找到和最大的子序列。#include<iostream>using namespace std;int

總頁數: 61357 1 .... 17109 17110 17111 17112 17113 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.