算法
yyyyyhu
这个作者很懒,什么都没留下…
展开
-
golang中defer的理解与使用
defer,即延迟调用,是Go语言的一大特色。defer代码块会在函数调用链表中增加一个函数调用,在函数正常返回,即return返回之后,增加一个函数调用。因此,defer常用来回收资源,哪怕程序执行有错误,依然能够保证回收资源等操作能够执行。它的使用有三条规则:当defer被声明时,其参数就会被实时解析 defer执行顺序,为先进后出 defer可以读取有名返回值那么这三条规则具体...原创 2019-12-09 23:07:26 · 1205 阅读 · 1 评论 -
背包问题Java
背包问题是动态规划类求解的一个典型问题,我们要先找到该问题的局部解然后扩展到全局解。这里讲解的是0-1背包。先看一下情景,假如一个小偷携带者一个可以放10kg重的背包,潜入一户人家行窃,家里有4个物品,每个物品只有1个。即价值v[] = {10, 40, 30, 50},重量w[] = {5, 4, 6, 3}。如果超出这个重量背包就会断,就没法带出,但是家里面有很多物品,他们对应着不同的重量和不...原创 2018-09-01 13:49:47 · 7234 阅读 · 2 评论 -
LinkedList常用方法
今天在刷剑指offer的时候,刷到了从上到下打印二叉树那题,需要使用队列来辅助实现。在JAVA中,我们常用LinkedList来模拟链式队列,发现好久没用LinkedList了,对它有一些陌生,因此整理一下,这里主要针对的是他的方法尤其是特有的方法。增加:add(E e):在链表后添加一个元素; 通用方法addFirst(E e):在链表头部插入一个元素; 特有方法addLast(E...原创 2018-09-04 20:43:58 · 34710 阅读 · 5 评论 -
顺时针打印矩阵java
剑指offer中的题目,输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,如:1 2 3 45 6 7 89 10 11 1213 14 15 16则依次打印1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10通过画图可以知道,其实就是若干个圈,依次打印出每个圈。而每个圈都要按照顺时针的顺序打印,即4个循环,先...原创 2018-09-02 15:00:31 · 2423 阅读 · 0 评论 -
二叉树的遍历 java版
总结二叉树的前序、中序、后序遍历,包含递归与非递归方式,以及层次遍历,递归方式比较简单,非递归前中后序主要使用一个辅助栈,层次遍历主要使用一个辅助队列。代码如下:import java.util.ArrayList;import java.util.LinkedList;import java.util.List;/** * Created by yhu on 2018/9/5....原创 2018-09-05 16:47:37 · 361 阅读 · 1 评论 -
2019贝壳在线考试研发类编程题(9.3)
因为只ac了2道,暂时只放上ac的2道题,分别是家族关系和计算器,做的头晕~~import java.util.HashMap;import java.util.Scanner;/** * Created by yhu on 2018/9/3. */public class 家族关系 { public static void main(String[] args)...原创 2018-09-03 21:31:05 · 4307 阅读 · 2 评论 -
剪绳子 java
题目还原:给你一根长度为n的绳子,请把绳子剪成m段,记每段绳子长度为k[0],k[1]...k[m-1],求k[0]k[1]...k[m-1]的最大值。已知绳子长度n为整数,m>1(至少要剪一刀,不能不剪),k[0],k[1]...k[m-1]均要求为整数。例如,绳子长度为8时,把它剪成3-3-2,得到最大乘积18;绳子长度为3时,把它剪成2-1,得到最大乘积2。分析:要求的是乘积的最...原创 2018-09-06 21:01:30 · 1803 阅读 · 0 评论