记录一道递归的面试题

一道面试题 一 问题描述 给定一个含有n个元素的整形数组a,再给定一个和sum,求出数组中满足给定和的所有元素组合, 举个例子,设有数组a[5] = {1,2,3,4,5},sum = 7,则满足和为7的所有组合是 {5,2} {4,3} {4,2,1} 二 解法 阅读详情

  今天去面试,碰到一道要求用递归实现的面试题,当时没想到,很可惜,特此记录一下。

  题目:1元1瓶水,2空瓶1瓶水,3瓶盖1瓶水,计算20元能买多少瓶水?

  答案如下:

/**
 * 1元1瓶水,2空瓶1瓶水,3瓶盖1瓶水,20元多少瓶水
 *
 * @param total 水的总数
 * @param b     空瓶
 * @param l     瓶盖
 */
public static void cntTableWater(int total, int b, int l) {
    // 初始化水、空瓶、瓶盖数量
    int water = total, bottle = b, lid = l;
    // 产生的新的水
    int newWater = bottle / 2 + lid / 3;
    // 新的空瓶和瓶盖
    bottle = newWater + bottle % 2;
    lid = newWater + lid % 3;
    // 将消耗的水累计
    water += newWater;

    // 已经无法兑换,则输出消耗的水
    if (bottle < 2 && lid < 3)
        System.out.println(water);
    else
        cntTableWater(water, bottle, lid);
}

 最后,运行结果是113,即可以买113瓶水。程序计算很简单,只是每次累计空瓶和瓶盖兑换的水的数量即可。

2026最新YOLO26改进:卷积层、轻量化、注意力机制、损失函数、Backbone、SPPF、Neck、检测头全方位优化汇总 针对YOLO26模型改进痛点,本专栏整理200+实战验证方法,覆盖卷积层、注意力机制等核心模块。 每种方法含原理、性能分析、改进路径及实操流程,代码可直接运行,快速提升模型效果,性价比超高。 阅读详情

相关推荐

MacOS蓝牙连接疑难杂症:从基础排查到高级修复全攻略

本文提供了一份全面的MacOS蓝牙故障排查与修复指南。从基础的菜单栏检查、终端命令诊断,到软/硬重启蓝牙服务、删除配置文件,再到使用blueutil工具、重置NVRAM等高级方法,系统性地解决了蓝牙无法连接、连接不稳定等常见问题。最后还分享了环境干扰排查、预防措施及硬件故障自检方法,帮助用户彻底解决Mac蓝牙连接难题。

weixin_29271263的博客 450

   递归面试题目总结

吃苹果问题 每天吃三分之一再加一个,到最后一天只有一个。 public class Test20 { public static void main(String[] args) { System.out.println(have(6)); } public static int h...

weixin_41563161的博客 1879

物理小白也能懂的PINN指南:用Python给神经网络注入‘物理常识‘

本文为物理小白提供了一份通俗易懂的PINN入门指南。通过生活化类比和Python实战,详细讲解了如何将物理定律作为约束注入神经网络,使其具备“物理常识”,从而在数据稀缺时也能做出符合规律的预测。文章以热传导方程为例,手把手教你从零构建物理信息神经网络。

open4的博客 349

前端面试题(基础部分)

该笔记是本人整理的面向实习生面试基础知识笔记(本人遇到的或者是面试过程、学习过程觉得会问的),进行分享,有需要的小伙伴应该可以得到帮助 本人笔记地址分享:全部笔记、前端学习笔记、数据结构与算法学习笔记、LeetCode笔记 整理时间:2020/10 #目录 #目录1.作用域2.函数封装(例子:字符串拼接)3.冒泡排序4.数组反转5.语义化标签6.h5新特性(标签)7.闭包8.去重9.flex10.rem布局11.this指向12.清除浮动13.VUE生命周期以及特点14.Promise15.块.

qq_47443027的博客 1431

微信小程序返回按钮的隐藏玩法:用onShow实现数据自动刷新(附完整代码)

本文深入探讨了微信小程序中用户点击返回按钮后,如何利用onShow生命周期函数实现页面数据的自动刷新。文章对比了onLoad与onShow的差异,提供了从基础的本地存储标记到进阶的EventChannel事件通信,再到状态管理库的多种解决方案,并附有完整的代码示例,帮助开发者构建流畅的用户体验。

agile9scrum的博客 925

Unity特效序列帧输出全攻略:Recorder+Timeline保姆级教程(解决透明通道问题)

本文提供Unity特效序列帧输出的完整解决方案,重点讲解如何结合Recorder与Timeline工具,实现带透明通道的PNG序列帧高效输出。通过保姆级教程,详细解析摄像机隔离、层级设置、参数配置等关键步骤,并深度解决透明通道丢失等常见问题,帮助特效师和动画师打通引擎创作与后期合成的工作流。

tensorflowjs6的博客 429

递归算法的经典面试题

1、注意:由于线程栈有固定的大小,如果进行递归的层次太深,有可能会出现溢出 常见面试题: 有一组数1、1、2、3、5、8、13、21、34…,要求用递归算法算出这组数的第30个数字是多少? ```csharp public int GitNumber(int i) { if(i<=0) //判断数值是否小于0 return 0; //返回数值0 else

白衣胜雪 1648

【数学建模】编程手学习路线

在学习过程中,建议注重理论与实践相结合,多进行实例练习和项目实践,以巩固所学知识并提升实际应用能力。同时,保持对新技术和新方法的关注和学习,不断提升自己的专业素养和竞争力。NumPy、Pandas、Matplotlib和Seaborn等库是数据处理和可视化的重要工具。掌握常用机器学习算法的原理和应用,如决策树、支持向量机、神经网络等。学习内容包括微积分、线性方程组、矩阵运算、概率分布、统计推断等。学习内容包括基本语法、函数和模块、面向对象编程、文件操作等。深入了解优化理论和方法,如梯度下降法、牛顿法等。

2301_79586491的博客 2962

经典的递归面试题

细胞分裂 细胞分裂 有一个细胞 每一个小时分裂一次,一次分裂一个子细胞,第三个小时后会死亡。那么n个小时候有多少细胞?这个问题的核心就是三个小时为一个周期,参考Javascript中的尾递归及其优化 // 每三个小时为一个周期 , 第四个小时就 go die 了。 // 方法一 // 第一个小时,只有a态细胞;第二个小时,a态细胞分裂,原来的a态细胞变成了b态细胞,分裂出来的细胞变成了新的...

hellogril前端库 3018

从CCS3.3到CCS10:工程迁移与开发环境升级全攻略

本文详细介绍了从CCS3.3迁移到CCS10的完整流程与实战指南。针对老旧DSP项目,阐述了升级的必要性,并逐步指导CCS10的安装配置、界面操作、核心的工程移植步骤,以及移植后常见的代码调整与问题解决方案,帮助开发者高效完成开发环境升级,充分利用新版本的工具链提升开发效率。

weixin_29304985的博客 377

openbmc 支持mctp over pcie(三)(支持作为endpoint)

本文介绍了在Intel BHS平台上支持MCTP over PCIe端点开发的调试方法。开发基于CodeConstruct和AspeedTech-BMC的开源项目,将内核驱动改为模块形式以便调试。内容包括DTS配置、驱动模块设置步骤,以及如何将BMC配置为端点设备。调试过程涉及内核模块加载、MCTPD启动、参数设置等关键命令,并展示了路由表、地址和邻居信息的测试结果。该方案仅为实验性工作,需注意停止其他使用/dev/aspeed-mctp0接口的应用。

wit_yuan的专栏 1554

前端面试题37(js递归)

在JavaScript中,递归是一种编程技术,它允许函数调用自身来解决问题。这种方法通常用于处理分治策略的算法,比如遍历树形结构、计算阶乘、 Fibonacci数列等。下面通过几个示例来说明如何使用递归。

God's asylum的博客 637

14、5G物理层的灵活解决方案:广义频分复用(GFDM)

广义频分复用(GFDM)作为一种高度灵活的5G物理层多载波调制方案,能够满足多样化应用场景的需求,包括高吞吐量的比特管道通信、低功耗高连接数的物联网、超低延迟的触觉互联网以及广覆盖的无线区域网。通过参数化配置,GFDM可适配LTE资源网格,实现与现有系统的兼容与共存。其支持多种解调方式、干扰消除技术、OQAM映射及预编码机制,兼具低带外发射、高频谱效率和强鲁棒性。GFDM还能统一描述OFDM、FBMC、FTN等多种经典与先进波形,成为5G及未来通信系统中极具潜力的通用波形框架。

gold8的专栏 108

【面试题】JavaScript中递归的理解

递归就是程序 函数自己 调用自己。递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

web全栈开发的博客 4284

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

记录每天一道python面试题

# Python3 一行代码实现1-100的求和: print(sum([i for i in range(101)])) # 描述 sum() 方法对系列进行求和计算。 # 语法 以下是 sum() 方法的语法: sum(iterable[, start]) # 参数 iterable -- 可迭代对象,如:列表、元组、集合。 start -- 指定相加的参数,如果没有设置这个值,默认为0。 sum([0,1,2]) 3 >>> sum((2, 3, 4), 1)

weixin_45715405的博客 603

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

关于完全二叉树的一道面试题

题目描述 存在一棵完全二叉树,从键盘输入一组数据,并将数据从二叉树的根结点顺序存入每个结点 ,输出从根结点到叶结点最大的路径长度。 输入描述: 输入第一行为完全二叉树的结点数 n。 输入第二行为对应的的所有整数,用空格隔开。 输出描述: 输出最大的路径长度 示例: 输入: 7 5 4 3 10 5 9 2 输出: 19 解题思路 1、该题目实际上是有一定难度的,需要边建立二叉树一边赋值,而且数值并...

bwqiang的博客 477

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

对一道算法面试题的理解

这是一道很简单的算法题,读者若是抱着学习知识的态度,请打住!该文章只是简单的记录自己学习心得而已!题目是求出1-100内所有相加之和等于100的组合,所有组合不能重复,组合内的数字也不能重复!   下面是谈谈我对一道算法面试题的理解: 我们可以采用由前往后的方法来组合所有数字,以达到相加之和等于100的目的,可以试着推测,第一次的数字由1开始,一次往后推进,当推进到某一个数字时,他们之间的所

LXLdancer的专栏 447

关于 JS 递归算法 记录

刚才看到了一道拼多多的面试题  :  使用递归的方法,将obj变为obj2的格式(拼多多2018前端笔试真题) obj = [ {id:1,parent:null}, {id:2,parent:1}, {id:3,parent:2} ] obj2 = { obj:{ id: 1, parent: null, c...

chao2458的博客 1098

一道百度面试题

这题很不错,由于题目是树形,而且状态转移并不复杂,动归的思想可以从这题中很好的体现。所以把这题求解的过程详细的记录下来。 原题 : // 一个有向无环图,只有一个入口和一个出口,插入若干个节点,使得从入口到出口的所有路径长度相同(长度是路径经过的节点的个数)。    // 并分析时空复杂度。 分析 :  题目要求插入若干个点,使得从入口到出口的所有路径长度相同 。 首先将

nvfumayx的专栏 737

由一道腾讯面试题引发的关于递归函数使用的各种情况总结

一直有一个感受就是,当我们在某些问题抽象的定义解答时候感到疑惑是,不妨看一下具体问题的解答,更加有助于我们理解问题。首先看一下腾讯的一道招聘的测试题。        1、面试题是一道程序编程题,要求使用递归的方法生成一个N位长度的格雷码,对格雷骂的定义是,相邻的两个格雷码只有一位的数字有差别。首先看一看我写的关于该题目的C程序代码:#include "stdio.h" #include"std

wang_dong001的博客 1778

JAVA面试题分享八十九:DNS迭代和递归的区别?

域名系统 (DNS) 将人类可读的域名 (例如,www.amazon.com) 转换为机器可读的 IP 地址 (例如,192.0.2.44)。

之乎者也·的博客 1257

面试题:从图的遍历到深拷贝的实现

前言 非常好的一道面试题,leetcode上是没有的,记录下。 原题 public class N{ public int val; public List<N> list; } val可以唯一标示一个对象,即不同对象的val值都不相同,给定如下类,要求实现深拷贝,方法定义如下: N dp(N source) { //待实现 } 分析 相信...

u013374645的博客 604

一道快手面试题,击败了100%用户

题目出自牛客网题霸系列 链接:https://www.nowcoder.com/practice/1b0b7f371eae4204bc4a7570c84c2de1?tpId=117&am...

算法码上来 392

记一道关于链表的面试题

这几天一直在参加校园面试,各大公司都有自己的笔试题,一直以来都觉得链表题都比较简单,但有时候头脑发热,在紧张的笔试中再简单的算法题也有可能写不出来,近三天参加的笔试中,下面的链表题出现了三次,可见链表还是很重要的!  题目:已知一链表结点定义为:typedef struct node Node;struct node { int data; Node *next; };(1) 现已知链表头

CMbug的专栏 903

2024年Web前端最新【面试题】JavaScript中递归的理解_js面试题 递归(2),2024年最新阿里大厂面试指南

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】在中国 帕斯卡三角 叫杨辉三角,因为在中国 杨辉三角 的记录比欧洲 帕斯卡三角记录早了几百年。面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。

2401_84447149的博客 618

面试题-Java算法篇

最近得空,就去一些招聘网站做了些面试题,为方便大家共同学习,Java相关的算法就在这篇文章里记录一下,以后有空会持续更新,大家有更好的写法也可以留言告诉我。Android篇的传送门1. 使用递归完成以下输出:* ** *** **** *****/** * 打印星号, 第一行1个, 以后每行增加一个 * * @param row 行数 */ public void printStart(in

StoneHui 1303
上一篇: 记一次dubbo启动嵌入式tomcat时的启动异常
下一篇: Java逻辑运算符的"短路"现象
hi__study
博客等级 码龄10年 14粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值