每日一题 2023.10.27

文章介绍了如何使用贪心策略解决LeetCode中的一个问题,计算在给定水平和垂直切割线后,蛋糕被切成的最大面积,同时考虑了取模运算。Solution类中包含max_level和maxArea两个方法用于分别计算水平和垂直切割的最大间隔,然后相乘得到最终面积。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1465. 切割后面积最大的蛋糕 - 力扣(LeetCode)

贪心解决:

只看一边  找到排序后 相邻两边的最大间隔

把两边的最大间隔相乘即可得到结果。

注意:要按题目要求取模运算

class Solution {
public:
    int max_level(int h,vector<int>&Cuts){
        sort(Cuts.begin(),Cuts.end());
        int n=Cuts.size();
        int res=max(Cuts[0],h-Cuts[n-1]);
        for(int i=1;i<n;i++){
            res=max(res,Cuts[i]-Cuts[i-1]);
        }
        return res;
    }
    int maxArea(int h, int w, vector<int>& horizontalCuts, vector<int>& verticalCuts) {
        int ans1=max_level(h,horizontalCuts);
        int ans2=max_level(w,verticalCuts);

        return (long long) ans1*ans2 %1'000'000'007;
    }
};

### Python 数据分析与可视化练习题及教程 #### 关于Python数据分析与可视化的学习资源 对于希望深入掌握Python数据分析与可视化的读者来说,存在多种途径来获取高质量的学习材料。针对初学者设计的一套视频教程涵盖了从基础概念到实战项目的各个方面[^1]。这套资料不仅提供了详尽的文字说明,还附带了实际操作中的源代码和数据集,使得学员能够通过动手实践加深理解。 #### 来自书籍的内容补充 除了在线课程外,《Python数据分析与可视化》这本书籍也是一份宝贵的学习工具[^2]。书中包含了大量实例研究,帮助读者更好地理解和应用所学的知识点。特别是书内提供的解决方案部分,对解决常见问题具有很高的参考价值。 #### 小型项目示例 为了巩固理论知识并提高编程技能,在日常练习中尝试完成一些小型的数据处理任务是非常有益的。例如,利用`pandas`库读取CSV文件创建DataFrame对象之后,可以通过简单的命令实现饼状图绘制: ```python import pandas as pd data = {'语文': [80, 90], '数学': [75, 85], '英语': [92, 88]} df = pd.DataFrame(data) df.plot.pie(subplots=True, figsize=(10, 10)) ``` 这段代码展示了如何基于给定的成绩表制作学科成绩分布情况的图表[^3]。 #### 温度变化趋势展示 另一个有趣的例子是对一段时间内的气温记录进行图形化表示。这里定义了一个名为`plot_temperature_data`的功能函数,接受字典形式输入参数(键为日期字符串,值为对应当天温度),随后生成一条反映温度随时间波动状况的折线图: ```python def plot_temperature_data(temperature_dict): import matplotlib.pyplot as plt dates = list(temperature_dict.keys()) temperatures = list(temperature_dict.values()) plt.figure(figsize=(10,6)) plt.plot(dates,temperatures,'b-o') plt.title('Temperature Changes Over Time') plt.xlabel('Date') plt.ylabel('Temperature (°C)') plt.grid(True) plt.show() # 使用方法如下: plot_temperature_data({'2023-01-01': 10, '2023-01-02': 12, '2023-01-03': 15}) ``` 此段脚本实现了根据指定时间段内的每日平均温差绘制成直观易懂的时间序列图谱[^4]。 #### 成绩统计条形图 最后介绍一个有关教育评估的应用场景——即构建一张综合展现各科目的分数概况(包括但不限于最高分、最低分以及均值)的柱状对比图。具体做法是先计算所需统计数据项,再调用matplotlib库的相关接口完成作图工作,并确保图像具备清晰可辨认的特点如添加标签文字等细节设置: ```python import numpy as np import matplotlib.pyplot as plt subjects = ['语文', '数学', '英语'] scores_min = [np.min([80, 90]), np.min([75, 85]), np.min([92, 88])] scores_max = [np.max([80, 90]), np.max([75, 85]), np.max([92, 88])] scores_avg = [(sum([80, 90])/len([80, 90])), (sum([75, 85])/len([75, 85])), (sum([92, 88])/len([92, 88]))] bar_width = 0.25 r1 = range(len(subjects)) plt.bar(r1, scores_min, color='blue', width=bar_width, edgecolor='grey', label='Min Score') plt.bar(np.arange(len(subjects))+bar_width, scores_max, color='green', width=bar_width, edgecolor='grey',label='Max Score') plt.bar(np.arange(len(subjects))+bar_width*2, scores_avg, color='red',width=bar_width, edgecolor='grey',label='Average') for i in r1: plt.text(i-bar_width/2,scores_min[i]+0.5,str(scores_min[i])) plt.text(i+bar_width/2,scores_max[i]+0.5,str(scores_max[i])) plt.text(i+bar_width*1.5,scores_avg[i]+0.5,"{:.1f}".format(scores_avg[i])) plt.xlabel('Subjects') plt.xticks([i + bar_width for i in r1], subjects) plt.ylabel('Scores') plt.legend() plt.savefig('score_bar.png') plt.show() ``` 上述代码片段成功地呈现了一张包含三个不同指标比较结果的横向排列直方图,同时满足了美观性和实用性两方面的要求[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值