problemscpp
A collection of my answers to algorithm problems in c++.
函数 | 变量
pat::a::a7_2 命名空间参考

7-2 The Second Run of Quicksort 更多...

函数

bool isFirstRun (int start, int end)
 
int main (istream &cin, ostream &cout)
 
 TEST (a7_2, case1)
 

变量

int lmax [100010]
 
int lmax2 [100010]
 
int rmin [100010]
 
int rmin2 [100010]
 
int vec [100010]
 

详细描述

7-2 The Second Run of Quicksort

函数说明

◆ isFirstRun()

bool pat::a::a7_2::isFirstRun ( int  start,
int  end 
)

在文件 pat.cpp5101 行定义.

5101 {
5102 if(start >= end) {
5103 return true;
5104 }
5105 lmax2[start] = vec[start];
5106 rmin2[end] = vec[end];
5107 for(int i = start + 1; i <= end; i++) {
5108 lmax2[i] = max(vec[i], lmax2[i - 1]);
5109 }
5110 for(int i = end - 1; i >= start; i--) {
5111 rmin2[i] = min(vec[i], rmin2[i + 1]);
5112 }
5113 for(int i = start; i <= end; i++) {
5114 if(vec[i] >= lmax2[i] && vec[i] <= rmin2[i]) {
5115 return true;
5116 }
5117 }
5118 return false;
5119 }
int rmin2[100010]
Definition: pat.cpp:5099
int vec[100010]
Definition: pat.cpp:5095
int lmax2[100010]
Definition: pat.cpp:5098

引用了 lmax2, rmin2 , 以及 vec.

被这些函数引用 main().

◆ main()

int pat::a::a7_2::main ( istream &  cin,
ostream &  cout 
)

在文件 pat.cpp5121 行定义.

5121 {
5122 int k;
5123 cin >> k;
5124 while(k-- != 0) {
5125 int n;
5126 cin >> n;
5127 for(int i = 0; i < n; i++) {
5128 cin >> vec[i];
5129 }
5130 bool ok = false;
5131 lmax[0] = vec[0];
5132 rmin[n - 1] = vec[n - 1];
5133 for(int i = 1; i < n; i++) {
5134 lmax[i] = max(vec[i], lmax[i - 1]);
5135 }
5136 for(int i = n - 2; i >= 0; i--) {
5137 rmin[i] = min(vec[i], rmin[i + 1]);
5138 }
5139 for(int i = 0; i < n; i++) {
5140 if(vec[i] >= lmax[i] && vec[i] <= rmin[i]) {
5141 if(isFirstRun(0, i - 1) && isFirstRun(i + 1, n - 1)) {
5142 ok = true;
5143 break;
5144 }
5145 }
5146 }
5147 if(ok) {
5148 cout << "Yes" << endl;
5149 } else {
5150 cout << "No" << endl;
5151 }
5152 }
5153 return 0;
5154 }
int rmin[100010]
Definition: pat.cpp:5097
int lmax[100010]
Definition: pat.cpp:5096
bool isFirstRun(int start, int end)
Definition: pat.cpp:5101

引用了 isFirstRun(), lmax, rmin , 以及 vec.

被这些函数引用 TEST().

◆ TEST()

pat::a::a7_2::TEST ( a7_2  ,
case1   
)

在文件 pat_test.cpp2316 行定义.

2316 {
2317 istringstream in("4\n"
2318 "8\n"
2319 "5 2 16 12 28 60 32 72\n"
2320 "8\n"
2321 "2 16 5 28 12 60 32 72\n"
2322 "8\n"
2323 "2 12 16 5 28 32 72 60\n"
2324 "8\n"
2325 "5 2 12 28 16 32 72 60");
2326 auto out = ostringstream();
2327 main(in, out);
2328 ASSERT_EQ("Yes\n"
2329 "Yes\n"
2330 "Yes\n"
2331 "No\n",
2332 out.str());
2333 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().

变量说明

◆ lmax

int pat::a::a7_2::lmax[100010]

◆ lmax2

int pat::a::a7_2::lmax2[100010]

在文件 pat.cpp5098 行定义.

被这些函数引用 isFirstRun().

◆ rmin

int pat::a::a7_2::rmin[100010]

在文件 pat.cpp5097 行定义.

被这些函数引用 main() , 以及 leetcode::delete_node_in_a_bst::Solution::remove().

◆ rmin2

int pat::a::a7_2::rmin2[100010]

在文件 pat.cpp5099 行定义.

被这些函数引用 isFirstRun().

◆ vec

int pat::a::a7_2::vec[100010]

在文件 pat.cpp5095 行定义.

被这些函数引用 pat::a::a1026::assign(), acwing::acwing789::bfl(), acwing::acwing789::bfr(), leetcode::serialize_and_deserialize_binary_tree::Codec::deserialize(), leetcode::minimum_time_difference::Solution::findMinDifference(), leetcode::repeated_dna_sequences::Solution::findRepeatedDnaSequences(), leetcode::product_of_two_run_length_encoded_arrays::Solution::findRLEArray(), acwing::acwing4213::get_min(), leetcode::all_ancestors_of_a_node_in_a_directed_acyclic_graph::Solution::getAncestors(), leetcode::factor_combinations::Solution::getFactorsWithMin(), leetcode::k_highest_ranked_items_within_a_price_range::Solution::highestRankedKItems(), pat::b::b1089::is_true(), isFirstRun(), acwing::acwing1725::main(), acwing::acwing4394::main(), acwing::acwing785::main(), acwing::acwing788::main(), acwing::acwing789::main(), acwing::acwing1824::main(), acwing::acwing143::main(), acwing::acwing849::main(), acwing::acwing853::main(), acwing::acwing4211::main(), acwing::acwing633::main(), acwing::acwing3406::main(), acwing::acwing785_408::main(), acwing::acwing1603::main(), acwing::acwing3527::main(), acwing::acwing3433::main(), luogu::P1427::main(), luogu::P5727::main(), luogu::P5738::main(), luogu::P5741::main(), luogu::P2415::main(), pat::b::b1004::main(), pat::b::b1008::main(), pat::b::b1010::main(), pat::b::b1022::main(), pat::b::b1023::main(), pat::b::b1025::main(), pat::b::b1030::main(), pat::b::b1045::main(), pat::b::b1050::main(), pat::b::b1052::main(), pat::b::b1055::main(), pat::b::b1060::main(), pat::b::b1070::main(), pat::b::b1072::main(), pat::b::b1075::main(), pat::b::b1080::main(), pat::b::b1082::main(), pat::b::b1085::main(), pat::b::b1089::main(), pat::b::b1095::main(), pat::b::b1096::main(), pat::b::b1100::main(), pat::b::b1102::main(), pat::b::b1106::main(), pat::b::b1109::main(), pat::a::a1006::main(), pat::a::a1007::main(), pat::a::a1008::main(), pat::a::a1019::main(), pat::a::a1023::main(), main(), pat::a::a7_4::main(), leetcode::jump_game_iv::Solution::minJumps(), leetcode::pacific_atlantic_waterflow::Solution::pacificAtlantic(), leetcode::palindrome_partitioning::Solution::partition(), leetcode::permutations_ii::Solution::permuteUnique(), pat::a::a7_4::postOrder(), acwing::acwing785::qs(), acwing::acwing785_408::qs(), leetcode::combination_sum::Solution::recurse(), leetcode::combination_sum_ii::Solution::recurse(), leetcode::serialize_and_deserialize_binary_tree::Codec::serialize(), leetcode::shortest_distance_to_target_color::Solution::shortestDistanceColor(), leetcode::sort_the_jumbled_numbers::Solution::sortJumbled(), leetcode::concatenated_words::TEST(), leetcode::contains_duplicate_ii::TEST(), leetcode::convert_1d_array_into_2d_array::TEST(), leetcode::count_elements_with_strictly_smaller_and_greater_elements::TEST(), leetcode::count_special_quadruplets::TEST(), leetcode::count_the_hidden_sequences::TEST(), leetcode::destroying_asteroids::TEST(), lintcode::distribute_candies::TEST(), leetcode::divide_a_string_into_groups_of_size_k::TEST(), leetcode::gray_code::TEST(), leetcode::hand_of_straights::TEST(), leetcode::increasing_triplet_subsequence::TEST(), leetcode::jump_game_iv::TEST(), leetcode::largest_number_at_least_twice_of_others::TEST(), leetcode::majority_element::TEST(), leetcode::maximum_running_time_of_n_computers::TEST(), lintcode::min_path_sum::TEST(), leetcode::minimum_cost_of_buying_candies_with_discount::TEST(), leetcode::minimum_swaps_to_group_all_1s_together_ii::TEST(), leetcode::minimum_time_difference::TEST(), leetcode::number_of_laser_beams_in_a_bank::TEST(), leetcode::permutations::TEST(), leetcode::second_minimum_time_to_reach_destination::TEST(), leetcode::slowest_key::TEST(), leetcode::stone_game_ix::TEST(), leetcode::UhWRSj::TEST(), leetcode::top_k_frequent_elements::Solution::topKFrequent() , 以及 leetcode::remove_colored_pieces_if_both_neighbors_are_the_same_color::Solution::winnerOfGame().