日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

华为机试4.27:购买水果最便宜的方案

發布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 华为机试4.27:购买水果最便宜的方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

有m個水果超市在1-n個小時的不同時間段提供不同價格的打折水果,如果某餐廳每個小時都要新采購一種水果給餐廳使用的話, 請選出n個小時內,采購水果的最便宜的花費總和。 (假設m個超市打折時間段可以覆蓋n小時)

輸入描述

N — 總小時數n
m — 水果超市個數m
X[0]x[1]x[2]—第2~m+1行:每行長度為3的數組,代表各超市在x[0]~x[1]小時(包含[x1])提供價格為x2的水果。

范圍提示: 1 <= n < 2^10 (1024)

輸出描述

采購水果的最便宜的花費總和。

樣例1

輸入

4 6 2 3 10 2 4 20 1 3 15 1 4 25 3 4 8 1 4 16

輸出

41

解釋

1小時選15元的水果,第2小時10元水果,第38元水果,第4 小時選8元水果,共15+10+8+8=41

思路分析

這道題首先是對于水果超市的起始時間和終止時間以及價格的存儲,比較方便的一個存儲方式就是用二維數組去存(這也是比較常用的方法)。

然后就是一個二維數組排序問題,按照價格從低到高排序,判斷水果超市的時間段符合要求,則結束內層循環。

參考代碼

import java.util.Arrays; import java.util.Scanner;public class Main1 {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();int m = in.nextInt();int[][] arr = new int[m][3];for (int i = 0; i < m; i++) {arr[i][0] = in.nextInt();arr[i][1] = in.nextInt();arr[i][2] = in.nextInt();}Arrays.sort(arr, (a, b) -> (a[2] - b[2])); // 按價格升序排int res = 0;for (int i = 1; i <= n; i++) {for (int j = 0; j < m; j++) {if (arr[j][0] <= i && arr[j][1] >= i) {res += arr[j][2];break;}}}System.out.println(res);} }

總結

以上是生活随笔為你收集整理的华为机试4.27:购买水果最便宜的方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。