846. 多關鍵字排序
描述
給定 n
個學生( 1
到 n
編號)以及他們的考試成績,這裡有兩個關鍵字,考試成績以及學生學號。根據第一關鍵字對陣列進行排序(降序
),如果第一關鍵字相同則根據第二關鍵字進行排序(升序
).
樣例
給出 [[2,50],[1,50],[3,100]]
,
返回 [[3,100],[1,50],[2,50]]
其實這道題有一個潛在的已經排序的佇列,就是編號1-n。而在所有排序演算法中,有相同值但不改變相對位置的,第一反應是氣泡排序。所以我的思路是,先根據n排序再氣泡排序。
class Solution { public: /** * @param array: the input array * @return: the sorted array */ vector<vector<int>> multiSort(vector<vector<int>> &array) { // Write your code here for(int i=0;i<array.size();i++){ if(array[i][0]!=i+1) { swap(array[i],array[array[i][0]-1]); i--; } } for(int i=0;i<array.size()-1;i++){ for(int j=0;j<array.size()-1;j++){ if(array[j][1]<array[j+1][1]) swap(array[j],array[j+1]); } } return array; } void swap(vector<int> &A,vector<int> &B){ vector<int> tmp=A; A=B; B=tmp; } };
相關推薦
【兩次過】【Comparator】846. 多關鍵字排序
給定 n 個學生( 1 到 n 編號)以及他們的考試成績,這裡有兩個關鍵字,考試成績以及學生學號。根據第一關鍵字對陣列進行排序(降序),如果第一關鍵字相同則根據第二關鍵字進行排序(升序). 樣例 給出 [[2,50],
846. 多關鍵字排序
描述給定 n 個學生( 1 到 n 編號)以及他們的考試成績,這裡有兩個關鍵字,考試成績以及學生學號。根據第一關鍵字對陣列進行排序(降序),如果第一關鍵字相同則根據第二關鍵字進行排序(升序).您在真實的面試中是否遇到過這個題? 是樣例給出 [[2,50],[1,50],[3
福大OJ 多關鍵字排序和排名
多關鍵字排序和排名 Description 下面是某一屆學生在OJ系統某一時刻的完成情況統計(學生總數不超過170人): 學號 姓名 解題數目 提交次數 222200221 高豔紅 77 124 222200116 吳志贇 80 90 222200240 高一鑫
多關鍵字排序(一個快速排序加兩個氣泡排序)
#include <stdio.h> #include <stdlib.h> typedef struct { char name[20]; float math,english,computer; float total; }Student; void
c++ sort雙(多)關鍵字排序
struct a{ int x,y; }k[100001]; bool compare(a m,a n){ if(m.x<n.x) return false; if(m.x==n.x){ if(m.y<=n.y) return false; retu
HDU 2093考試排名(結構體多關鍵字排序+字串處理)
題目 Description C++程式設計考試使用的實時提交系統,具有即時獲得成績排名的特點。它的功能是怎麼實現的呢? 我們做好了題目的解答,提交之後,要麼“AC”,要麼錯誤,不管怎樣錯法,總是給你記上一筆,表明你曾經有過一次錯誤提交,因而當你一
excel多關鍵字排序 多條件排序
今天一個做生意的朋友來問關於excel中排序的問題。他的表格內容類似下圖訴求是在單號進行排序後的基礎上,相同的單號內要按照發貨日期進行排序。經過簡單學習後,歸納總結如下。對於排序項是excel已支援的排序分類,如日期、數值等,可直接選擇基於該型別的排序。對於排序項是excel
設計模式實戰(一)——使用策略模式(strategy pattern)實現多關鍵字排序
“策略模式”的出現,是為了提供一套相互之間可靈活替換的演算法,在不影響上層介面的情況下,使用者可以自由選擇不同的演算法完成邏輯。 策略模式的UML示意圖如下:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-c
多關鍵字的分組排序
首先說下order byorder by asc是升序一般預設是升序降序的話是order by desc如果我們想按照指定的欄位順序來排列怎麼做呢有一個表t以下是select * from tid Name Country1 A TW2 B
多關鍵字查詢並根據匹配程度排序
多個關鍵字,根據包含的關鍵字個數從多到少排列。 即將包含關鍵字多的記錄放在前面,包含少的關鍵字放在後面,不包含關鍵字的則不顯示。比如一個表包含學號、姓名、性別、出生年月、籍貫、專業、學院等等資訊。 現在輸入多個關鍵字如"江蘇省 女 1990年"則將同時包含3個關鍵字的放在最
Sql多條件排序
sel http dao 留言 .net get 創建 cat 暴力 多條件排序可以通過在order by語句後面使用case when then條件語句來實現。 select * from 表名 ORDER BY case when 條件 then 0 else 1 e
【ES】學習11-多桶排序
nbsp order key actions color 字符串 efi 結果 literal 聚合結果的排序 默認:桶會根據 doc_count 降序排列。 內置排序: 設置按doc_count升序排序:註意order,_count GET /cars/transa
基數排序之多keyword排序運用隊列
printf mod n) key sort article name str oid 源碼例如以下: #include <stdlib.h> #include <stdio.h> typedef struct QUEUEnode* li
sort, nth_element 與 雙關鍵字排序
直接 -- 16px 元素 ont sum log set int 雙關鍵字排序: 1 const int T = 100000; 2 int sa[N+5], sum[T], ord[N+5]; 3 void bsort(int *a) { 4 me
c# List linq 多權重排序
closed 調用 open log 降序排序 bsp name display new //定義一個類 1 public class 自定義類 { 2 public int Age { get;set;} 3 public strin
MapReduce程序之二次排序與多次排序
大數據 Hadoop MapReduce Java [toc] MapReduce程序之二次排序與多次排序 需求 有下面的數據: cookieId time url 2 12:12:34 2_hao123 3 09:10:34 3_baidu 1 15:0
js數組排序,支持正反排序以及多維度排序
數字 ems key isn 默認 clas param sna items 工作中遇到js數組排序問題,數組中存儲的都是對象,於是就百度了下,利用別人的代碼進行修改,最終完成可以倒序、反序,可以進行多維度排序的功能源碼如下: /** * js數組排序 支持數字和字符串
c++結構體雙關鍵字排序
end return com using color 是不是 struct tro 排序 1 #include<bits/stdc++.h> 2 using namespace std; 3 struct node{ 4 int l,r; 5
BZOJ 3709&&AGC 018 C——多段排序的微擾法
努力 打了 能夠 影響 等於 恢復 cost 費用流 出現 BZOJ 3709? 有n只怪物,你的初始生命值為z。? 為了打敗第i只怪物,你需要消耗cost[i]點生命值,但怪物死後會使你恢復val[i]點生命值。? 任何時候你的生命值都不能小於等於0。? 問是否存在一種打
sort函數實現多條件排序
score 多重排序 我們 ava value rip 一個 ont 定義 js的sort方法,我們一般傳入一個回調用於單排序,也就根據某一個條件排序,那麽一個場景需要多條件排序(多重排序),我們怎麽處理呢? 如下例子,我們按學生的總分排序,如果總分相等,我們再按照語文成績