- 博客(17)
- 收藏
- 关注
原创 回溯法-矩阵中的路径
判断矩阵中有没有给出的路径。例如:‘a’,‘b’,‘c’,‘e’,‘s’,‘f’,‘c’,‘s’,‘a’,‘d’,‘e’,‘e’矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入该格子,也就是说每一个字符只能使用一次。Tip:如果看到“每一个字符/数字只能使用一次”,就考虑加一个布尔数...
2020-04-30 11:58:31
222
原创 贪心-跳跃游戏
跳跃游戏给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。几天没刷题,本来就菜的人变得更菜,这么简单的题都懵了。这道题就是简单的贪心,算出每个位置能到达的最远位置。比如nums[]={3,2,1,0,4}nums[0]最远到达nums[0]+0=3的位置;nums[1]到达nums[1]+1=3的位置...
2020-04-17 21:55:23
171
原创 动态规划---编辑距离
4月份的打卡题让我心力交瘁…不知所措…晕头转向…反正是流下了不学无术的眼泪…今天的题是用动态规划编辑距离,题的描述是这样:给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入:word1 = “horse”, word2 = “ros”输...
2020-04-06 11:47:59
178
原创 位运算求和
剑值offer上有道题很有趣,求两数和,要求:“写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。”一看不能直接加减,那就考虑二进制之间的与或非移位操作。求和主要有两点:1.每一位数字相加2.考虑是否进位用位运算考虑如何实现以上两点:二进制各位数字相加,我们都知道运算规则是:0+0=0,1+1=0,1+0=1,这不就是异或操作嘛!!所以,第一步,nu...
2020-04-04 17:58:30
1555
原创 压栈弹栈的判断
大学的数据结构考试就有一道这样的题:1,2,3,4,5是栈的压入顺序,判断4,5,3,2,1和4,3,5,1,2是不是对应的一个弹出序列。自己脑子里模拟栈来顺一遍的话很简单,可是今天我遇到了用代码实现这个判断,我变得十分无知…当然,依旧是看讨论区大佬们的代码偷学~解决这个问题的思路就是:压入顺序:pushA:1,2,3,4,5弹出顺序: popA:4,5,3,2,11.引用一个真正的...
2020-03-22 16:35:47
557
原创 旋转魔方
今天在看顺时针遍历数组的时候学到了新思路–旋转数组。首先旋转数组的意思可以看下例:123456789逆时针旋转90°后:369258147即列变为行,行变为列。public int[] revert(int[] matrix){ int rows=matrix.length;//行值 int cols=...
2020-03-22 14:52:57
346
原创 (&)与运算
与运算是适用于二进制数之间的运算符:3&5=(0000 0011)&(0000 0101)(运算规则:0&0=0,0&1=0,1&1=1)依次与运算,得到1(0000 0001)今天遇到的题目是:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。其实如果只是正数还简单,只需进行十进制向二进制的转换,转换过程中遇到余数为1,则count...
2020-03-21 16:55:25
403
原创 哈希表-猜数字游戏
299题猜数字你写下一个数字让你的朋友猜。每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了,用A表示,有多少位数字猜对了但是位置不对,用B表示。你的朋友将会根据提示继续猜,直到猜出秘密数字。请注意秘密数字和朋友的猜测数都可能含有重复数字。示例 1:输入: secret = “1807”, guess = “7810”输出: “1A3B”----------------...
2020-03-18 15:39:48
544
原创 矩形重叠
矩形重叠首先,是矩形,不是矩阵。矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]输出:true做这道题的话,找出不重叠的情况要比找出重叠的情况更...
2020-03-18 10:27:48
535
原创 26字母数组-解决“拼写单词”
今天遇到的拼写单词问题,自己吭哧吭哧写了40分钟,还只想到暴力法,结果只超过了5%…看了大家的题解,学到了,绝了!这道题的要求是:给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写时,chars 中的每个字母都只能...
2020-03-17 11:16:30
1240
原创 沉岛思想-DFS思想
Leetcode695题给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,...
2020-03-15 14:14:50
832
原创 摩尔投票法-求数组中多数元素
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。看到这道题的时候,我首先想到的是数组排序,返回中间元素就是多数元素: Arrays.sort(nums); return nums[nums.length/2];简单快捷,不过依靠的是API,提升不了算法能力。所以学习到新的算法—摩尔投票算法。先找算法第一个元素nums[0...
2020-03-13 11:10:24
254
原创 辗转相除法-求最大公因子/最大公共字符串
古老的算法,辗转相除法,又叫欧几里得算法。如果求6和4的最大公因子,过程就是:6%4=24%2=0 最大公因子是2如果求8和6的最大公因子,过程就是:8%6=26%2=0 最大公因子是2如果求5和3的最大公因子,过程就是:5%3=23%2=12%1=0 最大公因子是1方法显而易见是用递归:public int gcd(int m,int n){ if(n==0...
2020-03-12 11:28:59
458
原创 归并排序
扒完快速扒归并。归并类似于分治法,分而治之,治完再合一。先上代码:public static void Merge(int[] nums,int left,int mid,int right){ if(left>=right) return ; int[] ans=new int[right-left+1]; int l=left,r=mid+1...
2020-03-11 23:22:54
141
原创 快速排序
数据结构的排序部分方法很多,今天先来扒一扒在快速排序。简单来说,快速排序只有两步:确定主元(整个待排序列的中位数)以中位数作为分隔,左边是比中位数小的元素,右边是比中位数大的元素,两边分别递归| 5 2 6 3 8 7 4 1 9|以上面数组nums[9]为例,我们先来找他的中位数pivot。我们先把第一个值赋给pivot(pivot=5),再设置两个指针L,R分别指向第一个元...
2020-03-11 22:53:42
147
原创 python爬取网页图片
今天记录一个Python小代码——爬网页图片。我用的是anaconda prompt,代码如下:import urllib2req=urllib2.urlopen(‘http://toutiao.sogou.com/?fr=qqxwtt’)buf=req.read()#bufimport relisturl=re.findall(r’src=.+\jpg’,buf)#listurl...
2019-04-14 10:56:10
222
原创 eclipse安装JessTab
@JessTabeclipse安装JessTab本体推理需要用到jess,所以第一步先进行安装jess插件,再说学习!我在eclipse和protege都进行了jesstab插件的安装。eclipse1.在jess官网https://jessrules.com/下载jesstab插件,我下载的是试用30天。2.解压文件Jess71p2把该文件下的eclipse目录下的五个压缩文件依次...
2019-02-10 22:43:44
494
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅