• 第 71 场双周赛


     1 #define pb push_back
     2 class Solution {
     3 public:
     4     int minimumSum(int num) {
     5         vector<int> p;
     6         while(num){
     7             p.pb(num%10),num/=10;
     8         }
     9         sort(p.begin(),p.end());
    10         int res=p[0]*10+p[2]+p[1]*10+p[3];
    11         return res;
    12     }
    13 };//2239

     1 #define pb push_back
     2 class Solution {
     3 public:
     4     vector<int> pivotArray(vector<int>& nums, int pivot) {
     5         vector<int> ans;
     6         for(auto i:nums){
     7             if(i<pivot) ans.pb(i);
     8         }
     9         for(auto i:nums){
    10             if(i==pivot) ans.pb(i);
    11         }
    12         for(auto i:nums){
    13             if(i>pivot) ans.pb(i);
    14         }
    15         return ans;
    16     }
    17 };

    按常规套路枚举整除60取模60得到分钟和秒~
     1 const int inf = 0x3f3f3f3f;
     2 class Solution {
     3 public:
     4     int minCostSetTime(int startAt, int moveCost, int pushCost, int targetSeconds) {
     5         int ans=inf;
     6         vector<int> p;
     7         for(int i=0;i<=99;i++){  // 枚举秒 
     8             if((targetSeconds-i)%60==0&&i<=targetSeconds){
     9                 int res=(targetSeconds-i)/60;
    10                 if(res>99) continue;
    11                 int a=res,b=i;
    12 //                cout<<"("<<a<<" "<<b<<"):";
    13                 p.clear();
    14                 
    15                 while(b) p.push_back(b%10),b/=10;
    16                 while(p.size()<2) p.push_back(0);
    17                 while(a) p.push_back(a%10),a/=10;
    18                 reverse(p.begin(),p.end());
    19                 
    20 //                for(auto k:p) cout<<k<<" ";cout<<"over";
    21                 int st = startAt;
    22                 int num=0,f=1;
    23                 for(int j=0;j<p.size();j++){
    24                     if(f){
    25                         if(p[j]){
    26                             f=0;
    27                         }else{
    28                             continue;
    29                         }
    30                     }
    31                     if(p[j]==st){
    32                         num+=pushCost;
    33                     }else{
    34                         num+=moveCost+pushCost;
    35                         st=p[j];
    36                     }
    37                 }
    38                 ans=min(ans,num);
    39 //                cout<<num<<endl;        
    40             }
    41         }
    42         return ans;
    43     }
    44 };

    枚举分割点 + 优先队列
     1 const int N = 2e6+100 ;
     2 typedef long long ll;
     3 #define pb push_back
     4 priority_queue<int,vector<int>,less<int> > q;
     5 priority_queue<int,vector<int>,greater<int> > p;
     6 ll a[N],b[N];
     7 class Solution {
     8 public:
     9     long long minimumDifference(vector<int>& nums){
    10         while(q.size()) q.pop();
    11         while(p.size()) p.pop();
    12         int m=nums.size();int n=m/3;
    13         ll s=0;
    14         for(int i=0;i<n;i++) q.push(nums[i]),s+=nums[i];
    15         a[n-1]=s;
    16         for(int i=n;i<m;i++){
    17             if(nums[i]<q.top()){
    18                 s-=q.top();
    19                 s+=nums[i];
    20                 q.pop();
    21                 q.push(nums[i]);
    22             }
    23             a[i]=s;
    24         }
    25         s=0;
    26         for(int i=m-1;i>=m-n;i--) p.push(nums[i]),s+=nums[i];
    27         b[m-n]=s;
    28         for(int i=m-n-1;i>=0;i--){
    29             if(nums[i]>p.top()){
    30                 s-=p.top();
    31                 s+=nums[i];
    32                 p.pop();
    33                 p.push(nums[i]);
    34             }
    35             b[i]=s;
    36         }
    37         ll ans=a[n-1]-b[n];
    38         for(int i=n;i<2*n;i++){
    39             ans=min(ans,a[i]-b[i+1]);
    40         }
    41         return ans;
    42     }
    43 };
  • 相关阅读:
    团队第二阶段冲刺——第三天
    团队第二阶段冲刺——第二天
    团队第二阶段冲刺——第一天
    第一阶段意见汇总
    团队第一次绩效考核
    我们与同类产品的差距
    团队项目第一阶段成果评价
    第一阶段验收成果总结
    团队冲刺第十天
    团队冲刺第九天
  • 原文地址:https://www.cnblogs.com/pengge666/p/15865968.html
Copyright © 2020-2023  润新知