自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 算法准备-7.3

算法准备-7.31. 从上到下打印二叉树题目:请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。思路:这题与普通的BFS最大的不同就是要判断奇偶层数,然后分别从左到右打印和从右到左打印,此题中我们利用双端队列的方法,在不同的层数分别从两端加入元素,实现顺序的不同代码:/** * Definition for a binary tree node. * public class Tre

2020-07-03 22:10:05 219 2

原创 算法准备-6.1

算法准备-6.1不回溯的染色问题描述:有 N 个花园,按从 1 到 N 标记。在每个花园中,你打算种下四种花之一。paths[i] = [x, y] 描述了花园 x 到花园 y 的双向路径。另外,没有花园有 3 条以上的路径可以进入或者离开。你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。以数组形式返回选择的方案作为答案 answer,其中 answer[i] 为在第 (i+1) 个花园中种植的花的种类。花的种类用 1, 2, 3, 4 表示。保证存在答案

2020-06-01 22:53:19 257

原创 算法准备-5.29

算法准备-5.291. 打家劫舍描述:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。思路:此题考查动态规划算法,只有一间屋子时,只能偷一间,有两间屋子时,偷金额较大的那间,当数量大于2时,是否偷第k间屋子的标准在于第k间屋子的金额加上前k-2间屋子的

2020-05-29 15:36:44 210

原创 算法准备-5.12

算法准备-5.121. 克隆图描述:给你无向连通图中一个节点的引用,请你返回该图的 深拷贝(克隆)。简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = 2),以此类推。该图在测试用例中使用邻接列表表示。邻接列表 是用于表示有限图的无序列表的集合。每个列表都描述了图中节点的邻居集。给定节点将始终是图中的第一个节点(值为 1)。你必须将 给定节点的拷贝 作为对克隆图的引用返回。思路:即通过dfs遍历图,递归的建立起node节点与

2020-05-12 20:09:30 122

原创 算法准备-5.7

算法准备-5.71. 二叉树中的最近公共节点描述:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)“。思路:采用递归的算法,当root为空或者等于p,q的时候返回root,定义left为对ro...

2020-05-07 18:08:49 107

原创 算法准备-5.4

算法准备-5.41. 根据二叉树的前序序列和中序序列确定二叉树描述:根据一棵树的前序遍历与中序遍历构造二叉树。思路:递归,前序序列的第一个元素为根节点,找出此节点在中序序列中的位置,左右两边分别为根结点的左右子树,分别对其进行构造即可。(注意边界条件)题解:/** * Definition for a binary tree node. * public class Tr...

2020-05-04 17:32:23 111

原创 算法准备-4.27

算法准备-4.271. 无重复字符的最长子串描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度思路:这题我看了评论区,主要采用的是滑动窗口法。那么什么是滑动窗口法呢?我们定义两个指针start和end,开始都指向第一个值,end向后移动,我们用一个哈希表存储遍历过的元素,key为对应字符,value则是该字符倒数第二次出现的位置加一,从那个为止开始目前未发现重复元素...

2020-04-27 19:12:51 134

原创 算法准备-4.26

算法准备-4.261.扑克牌中的顺子描述:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。思路:这题主要考察的是建模能力。我的思路是这样的,只要排除0以外的最大值与最小值之差小于5且除0以外数组中不存在重复的元素,则可以返回True题解:cl...

2020-04-26 18:50:20 156

原创 算法准备-4.23

算法准备-4.231. 两个链表的第一个公共节点描述:输入两个链表,找出它们的第一个公共节点思路:此题比较简单,先计算出两个链表的长度,较长的链表的遍历指针先走差值步,然后同时往后移动,直至相同题解:/** * Definition for singly-linked list. * public class ListNode { * int val; * ...

2020-04-23 17:46:22 142

原创 算法准备-4.21

算法准备-4.211. 第一个只出现一次的字符描述:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).思路:这是我第一次使用哈希表,首先遍历一遍字符数组,查看每个字符的个数,第二次遍历时找到第一个数量为1的字符即可题解:class Solution { pu...

2020-04-21 19:00:51 116

原创 算法准备-4.20

算法准备-4.201. 把数组排成最小的数描述:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。思路:这题实际上是对字符串进行排序,排序的规则是任两个数字对应的字符连接的顺序不同的结果较小的那个排在前面,按照快排的思想进行修改题解:class Solution { public String minNumber(int[] ...

2020-04-20 19:11:11 120 2

原创 算法准备-4.17

算法准备-4.171. 完全平方数描述:给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少思路:动态规划动态规划的核心将问题分解成小问题后,在计算规模较大的问题时,能够用到规模较小的问题的解;我们建立一个整型数组res,res[i]表示的是n=i时的结果,计算第i+1时无非是比较当前的res[i...

2020-04-17 15:43:36 107

原创 算法准备-4.15

算法准备-4.151. 数组中超过一半的数字(摩尔投票法)描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字未解思路:此题采用分治算法,在原数组中超过一半的数字,在等分的左右两数组中至少有一个中也超过了一半,而且因为是超过一半,所以两个等分数组中都存在此元素新学思路:摩尔投票法:摩尔投票法基于当一个数的重复次数超过数组长度的一半,每次将两个不相同的元素删除,最终...

2020-04-15 16:16:57 123

原创 二叉搜索树

二叉搜索树定义:二叉树中任意节点的右子树的所有节点值都比此节点大,左子树中所有节点的值都比此节点小,每个节点存在指向其父节点的指针操作:查找:递归:if x==null or k==x.key return xif k<x.key return TREESEARCH(x.left,k)else return TREESEARCH(x.right,...

2020-04-14 16:37:09 93

原创 二叉树的常见算法

二叉树的常见算法二叉树的前序遍历描述:(1)访问根节点;(2)递归遍历左子树;(3)递归遍历右子树;题解://递归前序遍历import java.util.ArrayList;public void preTraversal(Node node){ ArrayList<Node> res=new ArrayList<>(); if(...

2020-04-14 16:33:04 473

原创 算法准备-4.14

算法准备-4.14复杂链表的复制描述:请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null思路:分三步,第一步复制每个节点使其位于原节点的后面;第二步建立random指针;第三步恢复链表题解:/*// Definition for a No...

2020-04-14 15:49:22 88

原创 算法准备-4.12

算法准备-4.121. 矩阵中的路径描述:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[[“a”,“b”,“c”,“e”],[“s...

2020-04-12 17:46:36 130

原创 算法准备-4.11

算法准备-4.111.二叉树中和为某一值的路径思路:首先对二叉树进行先序遍历,若当前节点为null,则直接返回,若为叶节点且路径和为sum,则把当前路径添加到结果中,再递归其左右子节点描述:输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。解法:/** * Definition for a bi...

2020-04-11 22:09:28 81

原创 春招准备-4.10

春招准备-4.101. Array和ArrayList的区别1.1数组定义:数组是用来存储同一类型值的集合,通过整型下标访问数组中的每一个值for each循环for ( variable : collection ) statement数组初始化和匿名数组int[]smallPrimes={2,3,5,7,11,13};甚至可以初始化一个匿名数组new int[...

2020-04-10 20:18:24 92

原创 字符串转换整数-Java

字符串转换整数(正则处理)描述:请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符...

2020-04-09 22:04:20 159

原创 春招准备-4.9

春招准备-4.91.字符串子串String 类的 substring 方法可以从一个较大的字符串提取出一个子串String greeting = " Hello " ;String s = greeting . substring (0,3) ;substring的第二个参数是不想复制的第一个位置拼接任何一个java对象都可以转换成字符串不可变字符串不能修改jav...

2020-04-09 21:19:11 143 1

原创 4.10之前的刷题记录

二维数组的查找描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。错误思路:第一列从上往下依次比较,找到比要寻找整数大的的上一层,进行遍历错误反省:错将条件当成每一行的起始都比之前的大解题思路:从左下角开始与目标元素进行对比,...

2020-04-08 16:53:40 199 1

c代码编写规范

关于c与c++的开发代码编写规范

2018-08-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除