自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mr IMMUNIZE的博客

日常刷题,大家一起交流进步。

  • 博客(31)
  • 收藏
  • 关注

原创 20190831:(leetcode习题)汉明距离

汉明距离题目大致思路代码实现题目大致思路简单来讲汉明距离就是两个数的二进制中1不同的个数。直接调用Integer的bitCount方法,可以直接计算二进制中的1的个数。递归:根据异或的性质,相同为0,不同为1,递归调用即可。x/2相当于x的二进制右移一位,因此不断的递归即可。代码实现class Solution { public int hammingDistanc...

2019-08-31 21:55:31 260

原创 20190830:(leetcode习题)二叉树的最大深度

二叉树的最大深度题目大致思路代码实现题目大致思路递归实现:当前节点深度为子节点的深度+1直接遍历查找:逐次记录深度即可代码实现public int maxDepth(TreeNode root) { /*方法一:递归实现 if (root == null) { return 0; } int left = maxDepth(root.left) + 1; ...

2019-08-30 21:02:24 71

原创 20190829:(leetcode习题)环形链表

环形链表题目大致思路代码实现题目大致思路快慢指针法:fast指针比slow指针快一步,存在环时fast可以追上slow,最后指向相同,即可判断存在环。递归法:每次都把指针指向自己,如果有环的话,遍历之后总会找到那个指向自己的。代码实现public class hasCycle { class ListNode { int val; ListNode next; ...

2019-08-29 23:34:04 90

原创 20190828:(leetcode习题)回文链表

回文链表题目大致思路代码实现题目大致思路对于本题,与之前的回文字符串相似,但是之前是反转字符串,现在是反转链表,我们直接用2个指针,分别来得到正序和反序的链表,逐元素进行对比,只要有元素不同,则返回false,直到循环结束,如果结束时没有不同,则返回true。特殊情况就是空链表和单元素链表。直接返回true。代码实现public class isPalindrome1 { /...

2019-08-28 23:59:55 89

原创 20190827:(leetcode习题)合并两个有序链表

合并两个有序链表题目大致思路代码实现题目大致思路本题的思路来讲,可以想见是和数组之类的类似,每次取出一个最小的值,取n次之后得到新链,最容易想到递归方法。每次调用函数时得到新的ListNode对象的一个值,它的next就继续调用merge函数获取下一个ListNode的值,直到全部找完为止。代码实现/** * Definition for singly-linked list....

2019-08-27 23:42:42 167

原创 20190826:(leetcode习题)反转链表

反转链表题目大致思路代码实现题目大致思路获取每一次的head,将其一个一个的放在新List的头部,并且将指针依次指向后续即可。代码实现public ListNode reverseList(ListNode head) { ListNode first = head; // 建立一个新的节点用来存放结果 ListNode newhead = null; // 遍历输...

2019-08-26 17:13:27 103

原创 20190825:(leetcode习题)最长公共前缀

最长公共前缀 题目大致思路代码实现题目大致思路我们以第一个字符串为准,将后面的字符串与第一个进行比较即可。比较时,将后续字符串依次与第一个字符串逐字符进行对比,相同的则append到StringBuilder对象中。代码实现class Solution { public String longestCommonPrefix(String[] strs) { ...

2019-08-25 23:06:42 78

原创 20190824:(leetcode习题)报数

报数 题目大致思路代码实现题目大致思路本题,首先看出是一道递归题,然后利用StringBuilder的append方法,将所有的类型转换为字符类型,并且进行拼接。细节见注释。代码实现public String countAndSay(int n) { // 第一个报数 if (n == 1) return "1"; // 递归取得上一轮报数得到的字符串...

2019-08-24 19:17:03 165

原创 20190823:(leetcode习题)实现 strStr()

实现 strStr函数 题目大致思路代码实现题目大致思路本题基本没有什么困难就可以先想到String的substring方法来截取字符串,只要注意特殊情况即可,见代码详细注释。代码实现class Solution { public int strStr(String haystack, String needle) { //原字符串的长度 int le...

2019-08-23 21:04:14 68

原创 20190822:(leetcode习题)字符串转换整数 (atoi)

@TOC题目大致思路这题主要是乱,思路大家都很容易想,就是把各种情况给码出来就行了,大家见我的代码注释会比较清晰。几个用得到的方法:trim和substring,toCharArray方法代码实现package com.immunize.leetcode.myAtoi;public class MyAtoi { public int myAtoi(String str)...

2019-08-22 20:08:33 111

原创 20190821:(leetcode习题)验证回文字符串

验证回文字符串题目大致思路代码实现题目大致思路首先明确什么是回文字符串: 正序和反序读,是一回事的句子,就是回文字符串 当然,你得把里面除了数字和字母的元素去掉,比如逗号啊,句号啊,之类的非字母数字字符。其余的我们只需要来个正反指针,看我正序和反序的指针指的东西是否相同即可,注意:只需要遍历到正中间即可。代码实现class Solution { public boole...

2019-08-21 18:49:04 149

原创 20190820:(leetcode习题)有效的字母异位词

有效的字母异位词题目大致思路代码实现题目大致思路本题的思路跟昨天的寻找唯一字符的类似。先创建存放区,也就是给a-z26个字母建立一个频率数组,然后遍历存放频率,最后依次比较存放的频率值是否相同即可。可能存在的另一个问题就是大家对字母异位词的理解: 字母的出现频率和样式都相同,只是位置不同,称为异位词 代码实现class Solution { public boolean ...

2019-08-20 18:11:03 162

原创 20190819:(leetcode习题)字符串中的第一个唯一字符

字符串中的第一个唯一字符题目大致思路代码实现题目大致思路说明了字符串,因此需要一个26位int返回值的数组,存放26个字母。遍历字符串,将该数组中的对应字母的出现频率存入数组Freq再次顺序遍历进行判断即可,出现的第一个Freq值为1的索引,返回即可。若遍历完找不到,则返回-1。代码实现package com.immunize.leetcode.firstdifferent;...

2019-08-19 17:05:25 135

原创 机器学习篇01:在线学习的支持向量机算法学习笔记

在线学习的支持向量机算法学习笔记oisvm算法实现说明oisvm算法实现说明% 本程序是用于实现基于在线学习的调制信号识别的程序% % % 第一步:调制信号的生成% 首先是7个信号:2ASK,2FSK,2PSK,4ASK,4FSK,4PSK,16QAM的实现,完全基于公式% 问题1与解答:% 而至于为什么要设置0.02MHz这么高的...

2019-08-18 16:22:49 445 1

原创 20190818:(leetcode习题)反转字符串&&整数反转

反转字符串&&整数反转题目大致思路代码实现题目反转字符串整数反转大致思路反转字符串的实现基本没有任何区别,相当于StringBuilder对象的reverse方法的重写。整数反转:整数不似字符串,因此难点在于如何将整数的各个位取出来单独使用,举例说明代码实现过程:输入123,先取出最后一位3,再取出第二位2,颠倒,变为32,这时候把颠倒后的32当做个位数...

2019-08-18 16:05:22 195

原创 20190817:(leetcode习题)旋转图像

旋转图像题目大致思路代码实现题目大致思路直接修改旋转之后的矩阵:也就是说,直接计算旋转后的位置即可,分析如下:原始矩阵 1 2 3 4 5 6 7 8 9调换对角元素后的矩阵:对角元素的规律是:00-22,01-12,10-21,中间两个数字和外面两个数字加起来相等,等于矩阵的长度-1。9 6 38 5 27 4 1调换第一行与最后一行,即可得到目标矩阵:...

2019-08-17 13:00:06 92

原创 20190816:(leetcode习题)有效的数独

有效的数独题目大致思路代码实现题目大致思路3点要求里提到了每一行,每一列,每一个宫内不能有重复的数字。因此想到使用HashSet来解决具体的另一个难点是如何表示每一个宫内的对应位置。具体的宫内数字的表示:我们注意到每一个宫内,行号的规律是:逢3个九宫格,行号增加3,逢宫内3个格点,行号+1,每个宫内的数字从0-9依次从(1,1)到(1,3)遍历。因此(i,j)坐标处所在格点的行号表示...

2019-08-16 13:01:21 87

原创 20190815:(leetcode习题)两数之和(2种方法)

两数之和题目大致思路代码实现题目大致思路暴力法:直接双层遍历判断是否符合相邻两数之和与target相等。HashMap法:HashMap存入所有的数组值和对应的数组索引,再次遍历进行判断map中是否包含所求的目标元素。代码实现class Solution { public int[] twoSum(int[] nums, int target) { /*方...

2019-08-15 11:45:39 98

原创 20190814:(leetcode习题)移动零 (补)

移动零题目大致思路代码实现合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入题目大致思路两个点:第一次遍历,遇到非零元素...

2019-08-15 10:40:17 132

原创 20190813:(leetcode习题)加一

加一题目大致思路代码实现题目大致思路本题的技巧点在与对数组的熟悉程度,新建数组的默认数值为0,因此我们碰到999的数组元素时,直接扩充一位,并且将数组首元素复制为1即可。其余的非全部为9的数组元素,只需要将9的位置赋值为0即可,0-8的元素,直接加1就可以了。简单来讲:逢9规0,其余加1,全9扩充。代码实现package com.immunize.leetcode.delete_...

2019-08-13 15:55:01 487

原创 20190812:两个数组的交集Ⅰ&Ⅱ

两个数组的交集Ⅰ&Ⅱ题目大致思路代码实现题目1:返回的数组中不能包含重复值2.必须将所有数字列出来,包括重复的数字大致思路第一题的思路:使用set来实现,第一个set存放第一个数组中出现的值,第二个set遍历之前先判断第二个数组的数字是否包含在第一个set中,如果包含,则直接将其添加到第二个set中,最后将set中的值赋值到新的数组中即可返回。由于set的特性,不会包含重复。...

2019-08-12 21:46:19 115

原创 20190811:只出现一次的数字(四种解法)

只出现一次的数字题目大致思路代码实现题目大致思路方法一:先排序,然后2个2个进行遍历,因为排序之后这个单独的数字一定在偶数下标对应的位置,找到不相同的这两个相邻数字,这两个数字中位于偶数下标的即为那个单独的数字,如果遍历结束还没找到,则为最后一个数字,注意遍历的时候只遍历到长度-1处即可。方法二:利用set集的特性,来进行实现,出现重复的就删除出set,对对碰的思想,直到遍历完,set中...

2019-08-11 21:05:11 285

原创 20190810:存在重复(三种解法)

存在重复题目大致思路代码实现题目大致思路方法一:遍历,比较相邻元素,采用两个循环,但是这个方法证实是超时的,因此只贴出代码参考方法二:遍历,但是先排序,再遍历,这样只需要一个循环对比相邻元素,即可判断是否有重复的元素。方法三:HashMap法:创建一个set,遍历数组,判断set是否包含每个元素即可。不存在的元素加入set集。代码实现class Solution { pub...

2019-08-10 23:30:15 279

原创 20190809:旋转数组

旋转数组题目大致思路代码实现题目大致思路将数组进行翻转,翻转3次即可实现旋转数组,以第一组例子进行示例:nums = [1 2 3 4 5 6 7], k = 3翻转顺序1 2 3 4 5 6 7第一次将数组完全翻转(0 - 最后)7 6 5 4 3 2 1第二次将0-2的序列翻转(0- k-1)5 6 7 4 3 2 1第三次将3-6的索引翻转(k - 最后)5 6 ...

2019-08-09 23:28:48 88

原创 20190808:买卖股票的最佳时机

买卖股票的最佳时机买卖股票的最佳时机大致思路代码实现买卖股票的最佳时机力扣简单习题1:力扣简单习题2:大致思路两题的区别是,第一题只进行一次交易,第二题可以多次交易第一题:遍历时随时计算最小值和最大值,找到他们的差值即可。第二题:遍历时记录比前一个数大的值,碰到此值时,进行累加即可。代码实现第一题:package com.immunize.leetcode.besttime...

2019-08-08 19:27:21 147

原创 20190807:排序数组删除重复项

排序数组删除重复项排序数组删除重复项大致思路代码实现排序数组删除重复项力扣简单习题:大致思路留一个计数君,碰到不一样的,就将计数君+1,并在此索引处直接将第二个值填充即可。代码实现package com.immunize.leetcode.delete_same;/** * leetcode:根据输入的数组,删除相同的值,且要在位置不变的情况下删除,在原数组里的原位置上删除,超...

2019-08-07 22:52:53 151

原创 20190806:字符串解密

字符串解密字符串解密大致思路代码实现字符串解密力扣简单习题:大致思路当遇到数字时,将数字直接入数字栈num,当遇到左边括号时,则先判断数字栈是否为空,若为空,则直接进入下一个字符的遍历,若不为空,则将该字符压入字符串栈,并将num数字栈清空,若为右括号,则将num栈栈顶数字弹出即为value,再将字符串栈中的栈顶元素出栈,并且重复value次,再入栈list。如果为字母,则直接跟到刚刚的...

2019-08-07 00:24:07 831

原创 20190804:有效的括号(误删补发)

有效的括号有效的括号大致思路代码实现有效的括号力扣简单习题:大致思路{},[],()的ASIC码字相差1或者2,利用这个差值即可实现代码代码实现package com.immunize.leetcode.valid_bracket;import java.util.Stack;/** * {} [] ASIC码相差2,()相差1,根据这个来判断即可 主要思路:引入一个新的栈...

2019-08-05 22:53:45 101

原创 20190805:两个队列实现栈

有效的括号的java实现有效的括号大致思路代码实现有效的括号力扣简单习题:大致思路代码实现package com.immunize.leetcode.valid_bracket;import java.util.Stack;/** * {} [] ASIC码相差2,()相差1,根据这个来判断即可 主要思路:引入一个新的栈,用于储存可能为左边括号的字符。 * * @aut...

2019-08-04 22:51:58 103

原创 20190803:栈实践(最小栈)

最小栈的单栈实现最小栈代码实现最小栈力扣简单习题:代码实现package com.immunize.leetcode.minstack;import java.util.Stack;/** * 需求:实现栈的push top pop getMin方法。 * * @author Mr IMMUNIZE * */public class MinStack { // ...

2019-08-03 22:34:35 129

原创 20190802:简单队列和循环队列的基本实现

简单队列和循环队列的实现基本框架代码实现总结基本框架代码实现SimpleQueue的实现:package com.immunize.queue;import java.util.ArrayList;import java.util.List;/** * 基础队列的实现:FIFO 先进先出 * * @author Mr IMMUNIZE * */public cl...

2019-08-02 22:21:21 127

空空如也

空空如也

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

TA关注的人

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