记录一道递归的面试题

一道面试题 一 问题描述 给定一个含有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瓶水。程序计算很简单,只是每次累计空瓶和瓶盖兑换的水的数量即可。

高通平台power_supply 框架下添加第三方充电IC的驱动方法 1.power_supply电源框架介绍: power supply framework在kernel/drivers/power/下。内核抽象出来power supply子系统为驱动提供了统一的框架。 功能包括: 1.抽象PSY设备的共性,向用户空间提供统一的API; 2.为底层PSY驱动的编写,提供简单、统一的方式,同时封装并实现公共逻辑。 power supply class位于d... 阅读详情

相关推荐

MuJoCo 关节角速度记录与可视化,监控机械臂运动状态

1. 手动计算关节速度,其中timestep为仿真步长。2. 使用data.qvel直接取得关节速度。

darcsdn 767

   递归面试题目总结

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

weixin_41563161的博客 1879

LabVIEW专栏九、类的继承与多态实践

本文深入探讨了LabVIEW中面向对象编程的核心概念——类的继承与多态。通过构建仪器参数父类与设备基类,并以网口设备为例创建子类,详细演示了如何利用继承实现代码复用,并通过多态机制实现统一接口调用不同仪器类型,从而构建灵活、可扩展的自动化测试与仪器控制系统。

weixin_29235525的博客 251

前端面试题(基础部分)

该笔记是本人整理的面向实习生面试基础知识笔记(本人遇到的或者是面试过程、学习过程觉得会问的),进行分享,有需要的小伙伴应该可以得到帮助 本人笔记地址分享:全部笔记、前端学习笔记、数据结构与算法学习笔记、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

【YOLO 系列】基于YOLOv8的工业零件表面缺陷智能检测系统【python源码+Pyqt5界面+数据集+训练代码】

本文详细介绍了如何基于YOLOv8深度学习模型和PyQt5图形界面,构建一套完整的工业零件表面缺陷智能检测系统。内容涵盖从环境搭建、数据集标注、模型训练调参到最终封装成可执行桌面软件的全流程,并深入解析了YOLOv8在工业视觉场景中的技术优势与落地优化策略。

ol78901234的博客 401

Python爬虫实战:5分钟搞定Web of Science文献批量导出与解析(附完整代码)

本文提供了一套利用Python爬虫技术,快速实现Web of Science文献批量提取与解析的完整方案。通过解析官方导出的HTML文件,结合BeautifulSoup和pandas库,可将文献数据自动转换为结构化的Excel/CSV表格,帮助科研人员高效管理文献信息,节省大量手动整理时间。

weixin_29050513的博客 1164

递归算法的经典面试题

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

采用MPU6050的手势遥控器

随着社会的发展与进步,电子产品日益更新,个人家庭迎来了越来越多的智能家电。然而,现在的智能电子设备产品的遥控器多数都是按键形的。操作繁琐不直观,学习成本大。并且对于有老人小孩的家庭,给他们的操作带来了巨大的障碍。手势遥控器是指利用简单的手势来指挥电子设备,获得便捷的操作体验。让家庭成员都可以享受科技发展带来的福利。MPU6050是一个运动传感器,内置陀螺仪,再由电子设备利用判断结果做出相应的响应即...

Sakura的博客小站 6602

经典的递归面试题

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

hellogril前端库 3018

【Origin+Python】使用External Python批量出图代码参考2

不使用part2 的代码,自己打开一个origin2022的界面。这里主要介绍一些进阶代码以及使用盗版origin要如何。3 批量绘制相同设置的曲线图。然后就是没有水印的图片了。

zeng001201的博客 1908

程序员必备75道逻辑思维题(附答案)之二

逻辑训练 身为一个大数据工程师,平时的算法训练还是不能少的,今天给大家看几道我曾经看到的逻辑思维题觉得很好,想分享一下。 【6】一个球、一把长度大约是球的直径2/3长度的直尺.你怎样测出球的半径?方法很多,看看谁的比较巧妙 【7】五个大小相同的一元人民币硬币。要求两两相接触,应该怎么摆? 【8】猜牌问题 S先生、P先生、Q先生他们知道桌子的抽屉里有16张扑克牌:红桃A、Q、4 黑桃J、8、4、2、...

蛋蛋淡淡定的庄园 3547

前端面试题37(js递归)

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

God's asylum的博客 637

高德地图-获取定位-失败原因-浏览器定位异常场景

提示:也能实现,但是需要https协议,而且请求时间很长,要么你用梯子,还是不太合适.

shi15926lei的博客 4206

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

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

web全栈开发的博客 4284

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

记录每天一道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

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

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

bwqiang的博客 477

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

对一道算法面试题的理解

这是一道很简单的算法题,读者若是抱着学习知识的态度,请打住!该文章只是简单的记录自己学习心得而已!题目是求出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、付费专栏及课程。

余额充值