1.有数组penny,penny中所有的值都为正数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim(小于等于1000)代表要找的钱数,求换钱有多少种方法. 给定数组penny及它的大小(小于等于50),同时给定一个整数aim,请返回有多少种方法可以凑成aim. 测试样例: [1,2,4],3,3 返回:2 penny[i]代表货币的面值.f[n],n代表可以组成的面值.f[n]代表可以组成的方法. f[0] 代表组成0,只有一种方法,就是不选任何货币,就可以…
对于一个int数组,请编写一个冒泡排序算法,对数组元素排序. 给定一个int数组A及数组的大小n,请返回排序后的数组. 测试样例: [1,2,3,5,2,3],6 [1,2,2,3,3,5] class BubbleSort { public: int* bubbleSort(int* A, int n) { // write code here ;i<n;i++){ ;j>i;j--){ ]){ int tmp = A[j]; A[j]=A[j-]; A[j-]=tmp; } } } ret…
1.有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树. 给定二叉树的根结点root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左往右排列.保证结点数小于等于500. /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };…
目录 牛客网<BAT面试算法精品课>学习笔记 牛客网<BAT面试算法精品课>笔记一:排序 牛客网<BAT面试算法精品课>笔记二:字符串 牛客网<BAT面试算法精品课>笔记三:队列和栈 牛客网<BAT面试算法精品课>笔记四:链表 牛客网<BAT面试算法精品课>笔记五:二分搜索 牛客网<BAT面试算法精品课>笔记六:二叉树 牛客网<BAT面试算法精品课>笔记七:位运算 牛客网<BAT面试算法精品课>笔记…
Machine Learning读书会,面试&算法讲座,算法公开课,创业活动,算法班集锦 近期活动: 2014年9月3日,第8次西安面试&算法讲座视频 + PPT 的下载地址:http://blog.csdn.net/v_july_v/article/details/7237351#t40: 2014年10月18日,北京10月机器学习班开班,全部PPT 的下载地址见:http://blog.csdn.net/v_july_v/article/details/7237351#t63: 201…
  前前后后阅读了一周, 感慨很多, 面试考察的是一个人的综合能力, 这一点从面试官的角度去解读, 确实对面试的理解更立体. *) 具体考察的点1) 扎实的基础2) 高质量的代码3) 清晰的思路4) 优化效率的能力5) 优化的综合能力 *) 基本技能体现1) 对边界条件的判断和意识, 空指针, 整数溢出2) 优化能力, 基本算法优化技巧, 动态规划, 空间换效率3) 知识迁移, 学习和建模能力 *) 职业素养感受很深的两点在于:1) 在编写代码前, 先主动向面试官解说自己的解体思路, 然后实际编…
本文主要用于记录在准备BAT面试中关于iOS遇到的问题和做一些相关面试题的笔记 iOS网络层设计 1.网络层和业务层的对接设计 使用哪种交互模式来和业务层对接 : 使用Delegate为主,目的是为了(1)减少代码的分散度(2)减少业务层和网络层的耦合,网络层对于业务层应该是抽象的,隐藏了实现细节的 (3)只采用一种是限制了灵活性,方便进行维护 在网络层不要滥用block :(1)block会延长对象的生命期,delegate则不会(2)block适合于在每次回调的任务都不一样的情况下,如果一样…
前言 金三银四俗称跳槽黄金季,很多同学都想趁着这段时间拿高薪,去更牛逼的公司工作,认识更多大牛,提升自己的职场竞争力. 那怎样才能通过BAT面试官的考核?怎样成为一名Offer收割机? 收割Offer有一个最直接的公示:Offer=硬实力+软实力+好的心态,三者缺一不可. 一.硬实力 这里说的硬实力,也就是技术上的真实积累. 怎么来体现你的技术实力?总的分为:技术深度和技术广度这两方面. 技术广度通俗的讲,就是你熟悉该技术点的使用以及基本原理.一般面试官在面试首轮会问很多技术点,来考核你是否能正…
VM基本是BAT面试必考的内容,今天我们先从JVM内存模型开启详解整个JVM系列,希望看完整个系列后,可以轻松通过BAT关于JVM的考核. BAT必考JVM系列专题 1.JVM内存模型 2.JVM垃圾回收算法 3.JVM垃圾回收器 4.JVM参数详解 5.JVM性能调优 JVM内存结构 由上图可以清楚的看到JVM的内存空间分为3大部分: 堆内存 方法区 栈内存 其中栈内存可以再细分为java虚拟机栈和本地方法栈,堆内存可以划分为新生代和老年代,新生代中还可以再次划分为Eden区.From Sur…
原文:算法起步之动态规划LCS 前一篇文章我们了解了什么是动态规划问题,这里我们再来看动态规划另一个经典问题,最长公共子序列问题(LCS),什么是子序列,我们定义:一个给定序列将其中的0个或者多个元素去掉之后得到的序列就是他的子序列.例如序列x包含(a,b,c,b,d,a,b)那么序列y(b,c,d,b)就是x的一个子序列.公共子序列则是两个序列的公共的子序列,而最长公共子序列则是从两个序列的公共子序列中挑选出长度最长的子序列. 我们用我们说的动态规划的四步来分析这个问题.一刻画最长公共子序列的…