首页 > 其他分享 >被裁不给交接时间当天就让滚蛋,离职后同组的领导同事反复微信电话问项目问题,还让一起拉群拉会看问题,怎么办?直接拉黑?

被裁不给交接时间当天就让滚蛋,离职后同组的领导同事反复微信电话问项目问题,还让一起拉群拉会看问题,怎么办?直接拉黑?

时间:2024-12-04 18:00:26浏览次数:6  
标签:硬币 拉黑 微信 金额 amount 群拉会 面额 coin dp

作为一名程序员,遇到这样的情况,真的让人心情复杂。裁员不给交接时间,直接让你走人,心里难受不说,工作上的东西也没法好好交接。

明明有些项目和代码还没完全梳理清楚,结果人家就直接让你走了。

然后问题来了,离职后,前同事和领导还开始反复给你发微信,电话,甚至叫你拉群、开会讨论问题。就挺。。。关我啥事~

我觉得,面对这种情况,直接拉黑倒是一个极端的解决办法,但我更建议做个平衡点的处理:如果真是自己能解决的小问题,随便帮忙一下,大家也都理解,但如果是反复不断、无理要求,那就要学会说不了。

毕竟,自己已经跳出那个坑了,不能再让别人拉着你往回走。

算法题:零钱兑换

今天我们来聊一个经典的算法问题:零钱兑换。

问题的背景是这样的:

给定不同面额的硬币和一个总金额,找出能够凑成这个金额的最小硬币数。你可以认为每个硬币的数量是无限的。说白了,就是给你若干面额的硬币,要求你用尽量少的硬币数去凑出一个指定的金额。

想象一下,如果你有3种硬币,分别是1元、2元和5元,目标金额是11元。用最少的硬币数量凑出11元应该是怎样的呢?答案显然是:1元×1 + 2元×1 + 5元×2,共使用3个硬币。

那么,问题来了,这个问题怎么用程序来解决?我们可以使用动态规划(DP)来解决它。首先,动态规划是一个非常典型的分治思想的应用,特别适合用来解决“最优解”类型的问题。

接下来,直接看代码实现吧:


def coinChange(coins, amount):
    # 初始化dp数组,dp[i]表示凑成金额i所需的最小硬币数
    dp = [float('inf')] * (amount + 1)
    dp[0] = 0  # 凑成金额0不需要硬币,硬币数是0

    # 遍历每个金额
    for i in range(1, amount + 1):
        for coin in coins:
            if i - coin >= 0:
                dp[i] = min(dp[i], dp[i - coin] + 1)

    return dp[amount] if dp[amount] != float('inf') else -1

这个代码的核心思想是,定义一个dp数组,dp[i]表示凑成金额i所需的最小硬币数。然后,我们通过每种硬币面额来更新dp数组。如果用某种硬币能凑出更少的硬币数,就更新dp[i]

解释一下这个代码的工作原理:

  1. 初始化dp数组,大小是amount + 1,因为金额从0到amount都有可能。初始值设置为无穷大,表示无法用某些硬币组合成这个金额。

  2. dp[0]设为0,因为凑成金额0不需要任何硬币。

  3. 然后,遍历每个金额i,对于每种硬币面额coin,判断当前金额i能否通过减去硬币coin得到一个已经计算过的金额。若是,可以更新dp[i]的值为更小的硬币数。

  4. 最后返回dp[amount],如果它依然是无穷大,说明无法凑出该金额,返回-1

举个例子:假设coins = [1, 2, 5]amount = 11,执行完上面的代码后,dp[11]的值会是3,表示最少需要3个硬币(如:5+5+1)。

动态规划的时间复杂度分析:

这个算法的时间复杂度是O(amount * len(coins)),因为对于每一个金额,我们都要遍历一次所有的硬币面额。如果金额amount很大,硬币面额很多,可能会导致计算量稍大,但总体来说这个算法效率还算可以。

通过这个例子,我们还可以看到,使用动态规划需要有一个很清晰的“状态”定义,这样才能通过状态转移公式一步步逼近目标。而且,像我这种“懒程序员”在编程时,越是能找到有效的优化路径,就越能提高自己的效率。动态规划正是通过记录中间结果避免了重复计算,简化了问题。

总之,这道零钱兑换的问题,看似简单,实则包含了很多编程中的精髓。它让我更加理解了“动态规划”这个思想背后的力量——把问题分解,再把小问题逐步解决,最终达到最优解。

标签:硬币,拉黑,微信,金额,amount,群拉会,面额,coin,dp
From: https://blog.csdn.net/2401_88796361/article/details/144135541

相关文章

  • 微信小程序3-显标记信息和弹框
     感谢阅读,初学小白,有错指正。一、实现功能:在地图上添加标记点后,标记点是可以携带以下基础信息的,如标题、id、经纬度等。但是对于开发来说,这些信息还不足够,而且还要做到点击标记点时,能够显示出相关所有信息。这篇笔记就是分享点击一个已有图标,如何能够显示出相关信息的功能。......
  • uniapp精仿微信源码,基于SumerUI和Uniapp前端框架的一款仿微信APP应用,界面漂亮颜值高,视
    uniapp精仿微信源码,基于SumerUI和Uniapp前端框架的一款仿微信APP应用,界面漂亮颜值高,视频商城小工具等,朋友圈视频号即时聊天用于视频,商城,直播,聊天,等等场景,源码分享sumer-weixin介绍uniapp精仿微信,基于SumerUI3.0和Uniapp前端框架的一款仿微信APP应用,界面漂亮颜值高,视频......
  • 基于微信小程序的手机银行业务系统的设计与实现
    文章目录项目介绍具体实现截图技术介绍uniapp+hbuilderx小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示源码获取/详细视频演示项目介绍同时由于手机银行系统管理中会形成众多的个人文档和信息系统数据,通过人工方法对银行账户、账户充值、贷款......
  • 多微信号管理不再难!客服销售必备提效工具!
    作为客服销售人员,日常工作中不仅要拨打众多电话,还要在多个微信账号间与客户沟通,推动业务成交。频繁在不同微信号间切换不仅繁琐,还容易遗漏消息,这一直是我工作中的痛点。尝试了多种方法效果都不理想,直到朋友向我推荐了微信管理系统,试用后发现它真的很棒。这个系统最棒的地方在......
  • 微信小程序的实验室考勤管理系统的设计与实现
    文章目录项目介绍具体实现截图技术介绍uniapp+hbuilderx小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示源码获取/详细视频演示项目介绍微信小程序的实验室考勤管理系统是一种专为学生和教师提供的软件,它能够帮助学生对实验的提升与了解。这款......
  • 基于微信小程序的新生入学报道系统 学生预报到注册系统设计与实现_
    文章目录项目介绍具体实现截图技术介绍uniapp+hbuilderx小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示源码获取/详细视频演示项目介绍基于微信小程序的学生预注册系统,旨在简化学生报到流程,提供身份验证、信息提交和交流论坛功能。通过微信平......
  • 微信小程序的社区二手旧衣物回收系统的设计与实现
    文章目录项目介绍具体实现截图技术介绍uniapp+hbuilderx小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示源码获取/详细视频演示项目介绍微信小程序的旧衣回收系统是一种专为环保生活设计的应用软件。这款小程序的主要功能包括:系统首页、个人中......
  • android手机的微信H5弹出的软键盘挡住了文本框,如何解决?
    Android微信H5页面中,软键盘弹出挡住输入框的问题,是一个比较常见且棘手的问题。核心原因在于微信内置浏览器对window.resize事件的处理机制与常规浏览器不同,以及Android系统本身的碎片化。以下是一些解决方案,建议结合实际情况选择和组合使用:1.使用scrollIntoView()方......
  • 微信小程序毕业设计-基于springboot+vue的在线共享泊车停车位系统设计和实现,基于sprin
    博主介绍:✌️码农一枚,专注于大学生项目实战开发、讲解和毕业......
  • 初识微信小程序
    微信小程序入门什么是微信小程序小程序是⼀种新的开放能⼒,在微信内被便捷地获取和传播。⼩程序的优势和劣势优势成本更低使⽤便捷容易推⼴体验良好劣势受微信的限制,不能涉及积分和虚拟交易单包⼤⼩限制2M发布麻烦小程序的模版语法wxml逻辑渲染<viewwx:if="{......