騰訊校招筆試題之紙牌遊戲
題目
牛牛和羊羊正在玩一個紙牌遊戲。這個遊戲一共有n張紙牌, 第i張紙牌上寫著數字ai。
牛牛和羊羊輪流抽牌, 牛牛先抽, 每次抽牌他們可以從紙牌堆中任意選擇一張抽出, 直到紙牌被抽完。
他們的得分等於他們抽到的紙牌數字總和。
現在假設牛牛和羊羊都採用最優策略, 請你計算出遊戲結束後牛牛得分減去羊羊得分等於多少。
解法
#include<iostream>
#include<stdlib.h>
using namespace std;
void quickSort(int s[], int l, int r);
int main()
{
int n;
cin >> n;
int* nums = new int[n];
for (int i = 0; i<n; i++)
{
cin >> nums[i];
}
quickSort(nums,0,n-1);
int result = 0;
int flag = 1;
for (int i = n - 1; i >= 0; i--)
{
result += flag* nums[i];
flag = -flag;
}
cout << result << endl;
return 0;
}
void quickSort(int s[], int l, int r)
{
if (l< r)
{
int i = l, j = r, x = s[l];
while (i < j)
{
while (i < j && s[j] >= x) // 從右向左找第一個小於x的數
j--;
if (i < j)
s[i++] = s[j];
while (i < j && s[i]< x) // 從左向右找第一個大於等於x的數
i++;
if (i < j)
s[j--] = s[i];
}
s[i] = x;
quickSort(s, l, i - 1); // 遞迴呼叫
quickSort(s, i + 1, r);
}
}
相關推薦
騰訊校招筆試題之紙牌遊戲
題目 牛牛和羊羊正在玩一個紙牌遊戲。這個遊戲一共有n張紙牌, 第i張紙牌上寫著數字ai。 牛牛和羊羊輪流抽牌, 牛牛先抽, 每次抽牌他們可以從紙牌堆中任意選擇一張抽出, 直到紙牌被抽完。 他們的得分等於他們抽到的紙牌數字總和。 現在假設牛牛和羊羊都採用最
騰訊校招筆試題之小Q的歌單
題目 小Q的歌單 熱度指數:1624 時間限制:1秒 空間限制:32768K 小Q有X首長度為A的不同的歌和Y首長度為B的不同的歌,現在小Q想用這些歌組成一個總長度正好為K的歌單,每首歌最多隻能在歌單中出現一次,在不考慮歌單內歌曲的先後順序的情況下
2017騰訊秋招筆試題之編碼
java 筆試題 ACMDescription: 假定一種編碼的編碼範圍是a ~ y的25個字母,從1位到4位的編碼,如果我們把該編碼按字典序排序,形成一個數組如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …,
2016年騰訊校招筆試題(研發崗)
最近網際網路筆試較頻繁,也跟著師兄一起做了一些公司的筆試題,先將題記錄下來吧,答案慢慢補。希望對自己明年找工作有幫助!首先上騰訊的筆試題,騰訊是我的dream offer啊啊啊啊啊啊啊! 一、不定
2014騰訊校招筆試題分析----資料結構篇(一套試題引發的血案)
一 不定項選擇題(共25題,每題4分,共100分,少選、錯選、多選均不得分) 1 已知一棵二叉樹,如果先序遍歷的節點順序是:ADCEFGHB,中序遍歷是:CDFEGHAB,則後序遍歷結果為:(D) A.CFHGEBDA B.CDFEGHBA C.FGHCDEB
騰訊校招程式設計題之快遞分身術
題目描述 城市裡有3000條橫向的道路和3000條縱向的道路,分別從1開始編號知道3000,。相鄰兩條平行道路的間距為1。 我們用(x,y)表示第x號橫向道路和第y號縱向道路。N個需要送快遞的點坐落在這些交點上。小Q只能沿著這些道路送快遞,而且只能在道路的交叉點改變方向。
騰訊秋招筆試題答案
1. #include <iostream> #include <string.h> using namespace std; char str[101]; int base[4]; int main() { while(cin>
2018騰訊校招軟件開發崗在線筆試題
def ping 靜態 題目 校招 最大堆 筆試 join 代碼 不定項選擇題(20道題): 1.SQL語句中,from,join,where,having,order by,group by,limit之間的執行順序是怎樣的? 2.inner join與left jo
騰訊2018秋招筆試題之小Q的歌單
題目描述: 小Q有X首長度為A的不同的歌和Y首長度為B的不同的歌,現在小Q想用這些歌組成一個總長度正好為K的歌單,每首歌最多隻能在歌單中出現一次,在不考慮歌單內歌曲的先後順序的情況下,請問有多少種組
[2017騰訊校招線上筆試題]
import java.util.ArrayList; import java.util.Scanner; public class Main { public static ArrayList<Integer> rst = new ArrayL
2017騰訊校招暑期實習生筆試題1
構造迴文給定一個字串s,你可以從中刪除一些字元,使得剩下的串是一個迴文串。如何刪除才能使得迴文串最長呢? 輸出需要刪除的字元個數。輸入描述:輸入資料有多組,每組包含一個字串s,且保證:1<=s.length<=1000. 輸出描述:對於每組資料,輸出一個整數,
騰訊2016校招筆試題(含答案)
騰訊2016校招筆試題(含答案) 1、父母生了兩個小孩。第一個是男孩,兩個都是男孩的概率是多少? 答案:1/2 解釋:第一個已經為男孩,第二個只有兩種可能男孩或女孩 概率=1乘二分之一 2、設k1,
15、2016校招騰訊研發崗筆試題(第二題)用Java實現
有下圖的題解,請用 C/C++ 程式碼來列出滿足下圖 0-100 內的所有答案。 分析: a1+a2-9=4 (1) a4-a5*a6=4 (2) a7+a8-a9=4 (3) a1+a4/a7=4 (4)
每日一題之 騰訊演算法崗筆試題 (字串Hash)
####描述 給定A,B兩個字串,定義如下規則 對於每一個A的長度為k的不同子串,統計子串在B中出現的次數 A和B的字串係數就是所有出現次數之和。 如 A=“abab“ B = “ababab“ k
2018科大訊飛校招筆試題
原題如下: 爭吵 時間限制:C/C++語言 2000MS;其他語言 4000MS 記憶體限制:C/C++語言 65536KB;其他語言 589824KB 題目描述: 有 n 個人排成了一行佇列,每個人都有一個站立的方向:面向左或面向右。由於這 n 個人中每個人都很討厭其他的
2017騰訊校招前端面試題
騰訊面試據說有兩輪技術面和一輪hr面,有些面得早的面完一輪直接等下一輪。同時也有不少霸面的。 一面: 感覺騰訊前端面試好實在,問得非常細。 核心技術介紹,包括哪裡人、意向的工作地點、最滿意的專案或者工作經驗 最少的程式碼、最簡單思路手寫一
校招筆試題編程技巧總結
hid sca 筆試 result div else 總結 class ash 技巧一://統計字符串s1的頻率 String s1 = in.nextLine(); //統計字符串s1的頻率 for (char c1 : s1.toCharAr
1~n的全排列--閱文集團2018校招筆試題
put ron class 校招 next() tostring return bsp 輸出格式 題目大意:給定整數n,求出1~n的全排列 示例 輸入:n=3 輸出:[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1] 1 im
2018 CVTE 前端校招筆試題整理
簡單的 三欄布局 位置 back 左右 blue color for循環 結果 昨天晚上(7.20)做了CVTE的前端筆試,總共三十道題,28道多選題,2道編程題 。做完了之後覺得自己基礎還是不夠紮實,故在此整理出答案,讓自己能從中得到收獲,同時給日後的同學一些參考。 首先
騰訊2017暑假筆試題-查詢二叉樹的根
/* 騰訊2017暑假筆試題-查詢二叉樹的根 對於一個高度為k的滿排序二叉樹,給定k和三個數, 找到這三個數的最小根節點 */ #include <iostream> #include <vector> #include <algorithm> u