笔记
wkays
这个作者很懒,什么都没留下…
展开
-
matlab的探索之路
最近在用matlab做一些分析,感觉好多很简单的东西都不熟,而且前一天刚查询的今天又忘了,于是在这里记录一下。第一坑.导入TXT文件1.可以直接找到文件,然后鼠标右键进行导入。2.调用load函数,例如:X = load(‘filename.txt’)。...原创 2019-12-27 09:45:14 · 412 阅读 · 0 评论 -
《疯狂java》NIO
1.Buffer相关一般使用CharBuffer和ByteBuffer,三个重要的概念:容量(capacity)、界线(limit)和位置(position);两个重要方法:flip()为读数据做好准备、clear()为再次装入数据做准备。/** BufferTest.java* Version 1.0.0* Created on 2019年12月6日* Copyright wkay...原创 2019-12-06 10:10:07 · 229 阅读 · 0 评论 -
eclipse使用小技巧总结
工欲善其事必先利其器,eclipse的小技巧学习,看起来想入门的。一、解决代码的自动提示问题:1、打开 Eclipse -> Window -> Perferences2、找到Java 下的 Editor 下的 Content Assist , 右边出现的选项中,有一个Auto activation triggers for Java:会看到只有一个”.”存在。表示:只有输入”...原创 2019-12-04 10:05:56 · 164 阅读 · 0 评论 -
关于阅读程序时遇到的一些问题和总结
1.Swap in JAVA, 不是想象中的简单。 // swap: interchange inside array static void swap(int[] a, int i, int j) { int t = a[i]; a[i] = a[j]; a[j] = t; }参考:https://blog.csdn.net/dadon...原创 2019-01-11 21:57:52 · 262 阅读 · 0 评论 -
《剑指offer》面试题52:两个链表的第一个公共节点
题目:输入两个单链表,找出它们的第一个公共节点。以下图为例,对一个公共节点为6所在的节点。例子如下:1 -> 2 -> 3 -> 6 -> 7 4 -> 5 ↗思路:思路一:具体算法为:分别遍历两个链表,得到分别对应的长度。然后求长度的差值,把较长的那个链表向后移动这个差值的个数,然后转载 2019-01-22 20:25:02 · 182 阅读 · 0 评论 -
《剑指offer》面试题53(3)
题目:数组中数值和下标相等的元素假设一个单调递增的数组里的每个元素都是整数且是唯一的。编写一个程序,找出数组中任意一个数值等于其下标的元素。例如,输入{-3,-1,1,3,5},输出3。思路:典型的二分查找例子。根据以上思路,java参考代码如下:public class IntegerIdenticalToIndex { public static int getNumber...转载 2019-02-14 16:36:59 · 164 阅读 · 0 评论 -
《剑指offer》面试题54:二叉搜索树的第K大节点
题目:找出二叉搜索树的第k大节点。例如,在下图的树里,第3大节点的值为4,输入该树的根节点,3,则输出4。 5 / \ 3 7 / \ / \ 2 4 6 8思路:二叉搜索树的中序遍历是有序的。可以引入一个计数器,每访问一个节点,计数器+1,当计数器等于k时,被访问节点就是该二叉搜索树的第k大节点。基于以上思路,ja...转载 2019-02-15 17:18:55 · 265 阅读 · 0 评论 -
《剑指offer》面试题58:翻转字符串
题目一:翻转单词顺序输入一个英文句子,翻转单词顺序,单词内字符不翻转,标点符号和普通字母一样处理。例如输入输入“I am a student.”,则输出“student. a am I”。思路:首先字符串整体翻转,得到“.tneduts a ma I”;然后以空格作为分隔符进行切分,对于切分下来的每一部分再进行翻转,得到“student. a am I”。基于以上思路,java参考代码如...转载 2019-02-21 16:46:34 · 215 阅读 · 0 评论 -
《剑指offer》面试题55:二叉树的深度
题目一:二叉树的深度输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点一次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。思路:1.二叉树root的深度比其子树root.left与root.right的深度的最大值大1。因此可以通过上述结论递归求解。2. 非递归方法,而是采用广度优先/层序遍历求解。基于以上思路,java参考代码如下://树节点声明publ...转载 2019-02-16 16:50:17 · 348 阅读 · 0 评论 -
《剑指offer》面试题55(2)
题目:平衡二叉树输入二叉树的根节点,判断该树是否是平衡二叉树。如果某二叉树的任意节点的左右子树深度之差不超过1,则该树是平衡二叉树。思路1:依据平衡二叉树的定义解决。借助于上一题二叉树的深度,从根节点开始逐点判断树的左右子树的深度差值是否满足要求。由于此解法是从根到叶的判断,每一次获取节点有需要从当前节点遍历到叶节点,因此需要多次遍历。思路2:如果用后序遍历,那么访问某一个节点时已经访...转载 2019-02-16 21:39:42 · 147 阅读 · 0 评论 -
《剑指offer》面试题58(2)
题目:左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。实现一个函数完成字符串的左旋转功能。比如,输入abcdefg和数字2,输出为cdefgab。思路:1.以“abcdefg”为例,我们可以把它分为两部分。由于想把它的前两个字符移到后面,我们就把前两个字符分到第一部分,把后面的所有字符分到第二部分。我们先分别翻转这两部分,于是就得到“bagfedc”。2.接下...原创 2019-02-22 16:47:17 · 204 阅读 · 0 评论 -
《剑指offer》面试题56:数组中数字出现的次数
题目一:数组中只出现一次的两个数字一个整数数组里除了两个数字出现一次,其他数字都出现两次。请找出这两个数字。要求时间复杂度为o(n),空间复杂度为o(1)。思路:这道题可以看成“数组中只出现一次的一个数字”的延伸。如果所有数字都出现两次,只有一个数字是出现1次,那么可以通过把所有所有进行异或运算解决。因为x^x = 0。但如果有两个数字出现一次,能否转化成上述问题?依旧把所有数字异或,最...转载 2019-02-17 19:17:05 · 256 阅读 · 0 评论 -
《剑指offer》面试题66:构建乘积数组
题目:构建乘积数组给定数组A[0,1…n-1],求B[0,1…n-1],要求B[i] = A[0]*A[1]…A[i-1]*A[i+1]…A[n-1],不能使用除法。思路:这道题给定我们一个数组,让我们返回一个新数组,对于每一个位置上的数是其他位置上数的乘积,并且限定了时间复杂度O(n),并且不让我们用除法。如果让用除法的话,那这道题就应该属于Easy,因为可以先遍历一遍数组求出所有数字之...转载 2019-02-27 19:35:08 · 204 阅读 · 0 评论 -
《剑指offer》面试题47:礼物的最大价值
题目:在一个m*n的棋盘的每一个格都放有一个礼物,每个礼物都有一定价值(大于0)。从左上角开始拿礼物,每次向右或向下移动一格,直到右下角结束。给定一个棋盘,求拿到礼物的最大价值。例如,对于如下棋盘1 10 3 812 2 9 65 7 4 113 7 16 5礼物的最大价值为1+12+5+7+7+16+5=53。思...原创 2019-01-16 20:46:13 · 465 阅读 · 0 评论 -
《剑指offer》面试题51:数组中的逆序对
题目:如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对总数。例如输入{7,5,6,4},一共有5个逆序对,分别是(7,6),(7,5),(7,4),(6,4),(5,4)。思路:思路1:暴力解决。顺序扫描数组,对于每个元素,与它后面的数字进行比较,因此这种思路的时间复杂度为o(n^2)。思路2:上述思路在进行比较后,并没有将相关信息留下,其...转载 2019-01-21 20:03:51 · 193 阅读 · 0 评论 -
《剑指offer》面试题35:复杂链表的复制
题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)节点定义如下:struct RandomListNode{ int value; RandomListNode* next; RandomListNode* r...转载 2019-01-02 21:03:34 · 127 阅读 · 0 评论 -
《剑指offer》面试题48:最长不含重复字符的子字符串
题目:输入一个字符串(只包含a~z的字符),求其最长不含重复字符的子字符串的长度。例如对于arabcacfr,最长不含重复字符的子字符串为acfr,长度为4。思路:使用动态规划,记录当前字符之前的最长非重复子字符串长度f(i-1),其中i为当前字符的位置。每次遍历当前字符时,分两种情况:1)若当前字符第一次出现,则最长非重复子字符串长度f(i) = f(i-1)+1。2)若当前字符不是第...转载 2019-01-17 19:58:38 · 467 阅读 · 0 评论 -
《剑指offer》面试题44:数字序列中某一位的数字
题目:数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从0开始计数,即从第0位开始)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。思路:我们令f(m)表示"从0~长度为m的最大的数字"的数字个数之和,由此我们可以继续分析:f(0) = 0f(1) =10 + 0 = 10 (对应0 ~ 9)f(2)...转载 2019-01-12 19:48:12 · 226 阅读 · 0 评论 -
《剑指offer》面试题49:丑数
题目: 题目:把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。设计一个算法,找出只含素因子2,3,5 的第 n 小的数。符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12…思路:思路1:从1开始递增,依次判断每个数是否是丑数,不够...转载 2019-01-18 20:07:32 · 141 阅读 · 0 评论 -
《剑指offer》面试题40:最小的k个数
题目:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。思路:1、排序把输入的n个整数排序,然后取前k个数;时间复杂度:O(nlogn)2、Partition通过partition找到第k大的数,它的左边就是前k小的数;时间复杂度:O(n)3、最大堆构建k个整数的最大堆数据结构,然后将剩余n-k个整数依次与堆...转载 2019-01-08 19:48:22 · 274 阅读 · 2 评论 -
《剑指offer》面试题50:第一个只出现一次的字符(字符串)
题目:字符串中第一个只出现一次的字符。在字符串中找出第一个只出现一次的字符。如输入abaccdeff,则输出b。思路:思路1:暴力求解,从前到后依次判断每个字符是否只出现一次,时间复杂度o(n^2),空间复杂度o(1);思路2:用空间换时间。这个思路可行的前提是题目中所说的“字符”指的是ascii编码的字符。0-127是7位ASCII码的范围,是国际标准。128-255称为扩展ASCII码...转载 2019-01-19 21:31:11 · 508 阅读 · 0 评论 -
《剑指offer》面试题45:把数组排成最小的数
题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,使其为所有可能的拼接结果中最小的一个。例如输入{3,32,321},则输入321323。思路:1.此题需要对数组进行排序,关键点在于排序的规则需要重新定义。我们重新定义“大于”,“小于”,“等于”。如果a,b组成的数字ab的值大于ba,则称a"大于"b,小于与等于类似。2.比如3与32,因为332大于323,因此我们称3“大于”...转载 2019-01-14 20:58:52 · 254 阅读 · 0 评论 -
《剑指offer》面试题50:第一个只出现一次的字符(字符流)
题目:找出字符流中第一个只出现一次的字符。例如,当从字符流google中只读出前两个字符go时,第一个只出现一次的字符是g;当读完google时,第一个只出现一次的字符是l。思路:此题的关键在于“字符流”。因此最好能够记住在哪个位置出现了哪个字符,从而可以完成每读到一个字符,就能动态更新到目前为止第一个出现一次的字符。此题同样使用了长度为256的int数组作为哈希表,用字符的ascii码值作...转载 2019-01-20 20:03:22 · 138 阅读 · 0 评论 -
《剑指offer》面试题41:数据流中的中位数
题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。思路:1.考虑用最大堆和最小堆实现。为了实现平均分配,可以在数据的总数目是偶数是把新数据插入最小堆,否则插入最大堆。2.还要保证最大堆中的所有数据都要小于最小堆中的数据。可以先按照奇偶规则插入,再适当...转载 2019-01-09 20:16:36 · 227 阅读 · 1 评论 -
《剑指offer》面试题46:把数字翻译成字符串
题目:给定一个数字,按照如下规则翻译成字符串:0翻译成“a”,1翻译成“b”…25翻译成“z”。一个数字有多种翻译可能,例如12258一共有5种,分别是bccfi,bwfi,bczi,mcfi,mzi。实现一个函数,用来计算一个数字有多少种不同的翻译方法。思路:下面我们从自上而下和自下而上两种角度分析这道题目,以12258为例:自上而下,从最大的问题开始,递归 : ...转载 2019-01-15 20:02:07 · 332 阅读 · 0 评论 -
《剑指offer》面试题59:队列的最大值
题目:滑动窗口的最大值给定一个数组和滑动窗口的大小,请找出所有滑动窗口的最大值。例如,输入数组{2,3,4,2,6,2,5,1}和数字3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}。思路:把可能成为最大值数字的下标放入双端队列deque,从而减少遍历次数。首先,所有在没有查看后面数字的情况下,任何一个节点都有可能成为某个状态的滑动窗口的最大值,因此,数组中任何一...转载 2019-02-23 16:52:09 · 427 阅读 · 0 评论 -
《剑指offer》面试题53:在排序数组中查找数字
题目:数字在排序数组中出现的次数统计一个数字在排序数组中出现的次数。例如,输入{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4。思路:改进运用二分查找接下来我们思考如何更好地利用二分查找算法。假设我们是统计数字k在排序数组中出现的次数。在前面的算法中时间主要消耗在如何确定重复出现的数字的第一个k和最后一个k的位置上,有没有可能用二分查找算法直接找到第一个...转载 2019-02-12 20:31:26 · 195 阅读 · 0 评论 -
总结:各种排序算法
快速排序:package chapter2;public class P79_quickSort { public static void quicksort(int[] data){ sort(data,0,data.length-1); } public static void sort(int[] data,int left,int right)...原创 2019-04-29 20:09:25 · 141 阅读 · 0 评论 -
手写代码遇到的一些问题
1.简单的从键盘读数,即Scanner的使用不熟悉:package Testpackage;import java.util.Scanner;public class test0505 { public static String func(String a,String b,String ch){ if(ch.trim().equals("+")){ ...原创 2019-05-05 17:08:01 · 272 阅读 · 0 评论 -
总结:动态规划部分
动态规划是面试中的热门话题,值得总结。原创 2019-05-05 21:13:17 · 224 阅读 · 0 评论 -
求职相关注意事项
昨天听的一场求职讲座,以下是相关要点,之后再综合其他资料进行修改,更新。关于简历:1.简历文件命名:求职岗位_学校_姓名。2.个人信息:手机号,邮箱,求职意向(意向城市),党员要写(团员不用,大家都具有的共性就不用写,~)。3.相关经历:根据岗位填写自身相关的。采用STAR法则(情境(situation)、任务(task)、行动(action)、结果(result))。例子:2012....原创 2019-05-10 09:15:48 · 379 阅读 · 0 评论 -
总结:位运算
位运算也是一个不容忽视的部分。在《剑指offer》99页,提到进制,而且有一个例子:在微软产品Excel中,用A表示第1列,B表示第2列,……,Z表示26列,AA表示27列,AB表示28列……依次类推。请写出一个函数,输入用字母表示的列号编码,输出它是第几列。自己想了一下,java实现代码如下:package chapter2;public class P99_ExcelNumber ...原创 2019-05-20 21:17:03 · 161 阅读 · 0 评论 -
《剑指offer》面试题64:求1+2+……+n
题目要求:求1+2+…+n,要求不能使用乘除法,for,while,if,else,switch,case等关键词及条件判断语句?:。解题思路:不能用循环,那么可以使用递归调用求和。但又不能使用if,结束条件如何生效?可以使用如下形式替代if语句替代if的一种方式:boolean b=判断条件&&(t=递归执行语句)>0基于以上分析,java参考代码如下:pac...转载 2019-05-10 21:25:43 · 129 阅读 · 0 评论 -
总结:栈和队列相关
栈和队列相关总结。原创 2019-05-16 19:28:41 · 171 阅读 · 0 评论 -
总结:链表相关算法
《剑指offer》56页说道,链表应该是面试时被提及最频繁的数据结构,由此可见其重要性。本文将结合书中的题目,以及LeetCode中相关的题目,总结链表。...原创 2019-05-12 20:02:54 · 260 阅读 · 0 评论 -
总结:字符串经典算法
字符串的经典算法。原创 2019-05-22 17:06:35 · 1972 阅读 · 0 评论 -
总结:各种查找方法
查找包括顺序查找、二分查找、哈希表查找和二叉排序树查找。这里将全部用java代码实现。在这里插入代码片原创 2019-04-24 19:35:03 · 540 阅读 · 0 评论 -
问答社区笔记(SpringBoot+MySQL+Redis)
最近开始学习仿网上商城的一些东西,开一个博客,记录这个过程中的一些知识点和疑问,方便之后总结,加油!原创 2019-04-02 10:21:01 · 270 阅读 · 0 评论 -
《剑指offer》面试题:二叉树的遍历总结
二叉树的遍历总结转载 2019-03-07 20:25:32 · 487 阅读 · 0 评论 -
《剑指offer》面试题68:树中两个节点的最低公共祖先
题目:树中两个节点的最低公共祖先输入一棵树的根节点,输入两个被观察节点,求这两个节点的最低(最近)公共祖先。思路:此题比较开放,主要是对于“树”没有做明确说明,所以原书中就对树的可能情况做了假设,然后就衍生出多种思路。1.如果是二叉搜索树:遍历找到比第一个节点大,比第二个节点小的节点即可2.如果是父子间有双向指针的树:由下往上看,转化为找两个链表的第一个公共节点问题3.如果只是一...转载 2019-03-01 16:32:43 · 348 阅读 · 0 评论