Ի՞նչ տարբերություն կա RANK() և DENSE_RANK() միջև։
Data Engineer
CREATE TABLE orders ( driver_id varchar, city varchar, order_id varchar ); -- Հատուկ 10 վարորդները ըստ պատվերների քանակի յուրաքանչյուր քաղաքում
Որտե՞ղ է տվյալների սեղմումը ավելի լավ աշխատում՝ սյունակային կամ տողային պահեստում, և ինչու՞։
Կպատմիր, ինչ ես գիտակցում տվյալների սյունակային և տողային պահպանումների մասին: Երբ և որին պետք է ընտրել և ինչու?
-- Օրիգինալ stretch աղյուսակը -- Անհրաժեշտ է լրացնել NULL արժեքները նախորդ (ոչ NULL) արժեքով id-ի հիման վրա - ներքևի լրացում id | ttime | val ---|-------|----- 1 | 07:30 | NULL 1 | 09:21 | 10 1 | 13:53 | NULL 1 | 16:12 | NULL 2 | 09:42 | 133 2 | 15:20 | NULL 2 | 21:33 | NULL 3 | 08:01 | NULL 3 | 11:41 | 8 3 | 14:23 | NULL 3 | 16:17 | NULL 3 | 19:54 | 2 4 | 13:10 | 312 4 | 14:42 | NULL 4 | 16:31 | 7 4 | 17:44 | NULL id | ttime | val ---|-------|----- 1 | 07:30 | NULL 1 | 09:21 | 10 1 | 13:53 | 10 1 | 16:12 | 10 2 | 09:42 | 133 2 | 15:20 | 133 2 | 21:33 | 133 3 | 08:01 | NULL 3 | 11:41 | 8 3 | 14:23 | 8 3 | 16:17 | 8 3 | 19:54 | 2 4 | 13:10 | 312 4 | 14:42 | 312 4 | 16:31 | 7 4 | 17:44 | 7 -- SQL հարցում ցանկալի աղյուսակը ստանալու համար SELECT id, ttime, COALESCE(val, LAST_VALUE(val) OVER(PARTITION BY id ORDER BY ttime)) as val FROM stretch
Քանի լրացուցիչ հիշողություն է պահանջում բառարանի լուծումը, բացի վերադարձվող տվյալներից?
Անցկացրեք վերջնական լուծումը ժամանակի և հիշողության առումով.
Ի՞նչ ժամանակում է աշխատելու լուծումը ներքին sorted-ով: Կարող եք մտածել ավելի արագ լուծում?
Ինչպե՞ս լուծել խնդիր՝ օգտագործելով բառարան՝ գծային ժամանակում O(n): Ի՞նչ պետք է պահել բառարանում՝ որպեսզի հետո հավաքենք դասավորված տողը: Ինչպե՞ս մշակել այն նշանները, որոնք չեն տրված կարգում։
-- Գտնել բոլոր ուղևորներին, ովքեր կատարել են երկու կամ ավելի օր շարունակ ուղևորություններ
Տրված է order տողը, որը ցույց է տալիս ցանկալի նշանների կարգը: Պետք է վերակազմել unsorted_str տողում նշանները այնպես, որ կարգը համապատասխան լինի order տողին: Երկու տողերն էլ բաղկացած են անգլերեն փոքրատառերից, բոլոր նշանները տարբեր են: Նշանների կարգը unsorted_str-ում կոչվում է համապատասխան order տողին, եթե այն, որ նշան x-ը հայտնվում է y-ից առաջ order-ում, նշանակում է, որ ցանկացած x-ի հայտնվելը unsorted_str-ում պետք է լինի y-ի ցանկացած հայտնվելուց առաջ: Նպաստային իրավիճակներ, երբ order-ում չկա unsorted_str-ի նշաններ և հակառակը, թույլատրվում է: Ձեր ընտրությամբ վերադարձրեք ցանկացած թույլատրելի փոխադրություն: unsorted_str = "abcd" order = "cba" պատասխան = "dcba" ("cdba", "cbda", "cbad") def CustomSort(unsorted_str: str, order: str) -> str: # կոդ այստեղ
Ինչպե՞ս կատարել վերևի երկարացում (NULL-ները լրացնել նախորդ ոչ զրո արժեքով հակառակ ուղղությամբ):