算法刷题
BLKNjy
java后端开发,略懂前端
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
动态规划_之_子序列问题
最长公共子序列 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。 两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。 解: 设置子序列的问题==》十有八九是动态规划 明确dp数组原创 2021-09-28 11:27:49 · 179 阅读 · 0 评论 -
二进制最右侧1及其应用
把一个整型数,提取最右侧的1 int N=0000 1101 1000 1100 变成ans=0000 0000 0000 0100 ans=N&(~N+1) 应用: 一个数组中两种数出现了奇数次,其余的数都出现偶数次,找到并且打印这两种数(最右侧1的应用!) 假设两种数是a和b,则两种数异或的结果为ab,则数组所有数异或的结果为ab。 因为a!=b也就是a^b!=0,所以a和b某一位不相等。假设第8位不同,所以根据第8位为0和1,将数组中所有的数分为两组。 将数组中第八位为1的数和 第八.原创 2021-08-31 11:09:39 · 498 阅读 · 0 评论 -
二叉树先序、中序和后序的递归玉非递归实现
目录标题递归非递归 递归 //无论是哪种递归,每个节点都可以回到自己三次。先序遍历就是i遇到节点的第一次打印 //,中序遍历就是遇到节点的第二次打印,.... public void f(Node head){ if(head==null)return; f(head.left); f(head.right); } //递归实现–无论是哪种递归,每个节点都可以回到自己三次。先序遍历就是i遇到节点的第一次打印 //递归实现--无论是哪种递归,每个节点都可以回到自己三次。先序遍历就是i遇到节点的第一次原创 2021-08-17 23:42:59 · 291 阅读 · 1 评论 -
排序算法(3)
目录快速排序计数排序基数排序 快速排序 每次在数组中找一个标杆(轴),将数组重新排列,前面的数比轴小,后面的数比轴大。 将数组分成了两部分。 再从两部分各选择轴,一次再重新排列。 将数组分成了四部分。 思想:双指针,一个指向数组头一个指向数组尾部,同时向中间移动,头指针找到比轴大的停下,尾指针找到比轴小的停下,两者交换。再继续。 public class Test { public static void main(String[] args) { int[] arr={7,3,2,原创 2021-08-11 00:29:28 · 154 阅读 · 0 评论 -
排序算法(2)
目录希尔排序归并排序(重要) 希尔排序 shell sort 改进的插入排序:希尔排序(考的不多) 思想:从第一个数开始经过固定间隔找出一组数,用插入排序排好。再从第二个数开始经过同样的间隔进行同样的排序…直到所有的数都排过一遍。 间隔减1重复上述步骤…间隔再减1重复步骤…直到间隔为1 先根据插入排序,写出gap=4的第一轮排序 public static void main(String[] args) { int[] arr={9,6,11,3,5,8,7,9,4,13,2};原创 2021-08-11 00:24:04 · 96 阅读 · 0 评论 -
排序算法(1)
简单排序 选择排序(不重要) 基本思想:一遍一遍过滤数组,找到最小的数,放到最前面。 public class test { public static void main(String[] args) { int[] arr={5,3,6,8,1,7,9,4,2}; for(int i=0;i<arr.length-1;i++){ int minIndex=i; for(int j=i+1;j<arr原创 2021-08-11 00:11:00 · 81 阅读 · 0 评论 -
有限状态机
状态机 题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。 详细描述: 数值(按顺序)可以分成以下几个部分: 1.若干空格 2.一个 小数 或者 整数 3.(可选)一个 'e' 或 'E' ,后面跟着一个 整数 4.若干空格 小数(按顺序)可以分成以下几个部分: 1.(可选)一个符号字符('+' 或 '-') 2.下述格式之一: 至少一位数字,后面跟着一个点 '.' 至少一位数字,后面跟着一个点 '.' ,后面再跟着至少一位数字 一个点 '.' ,后面跟着至少一位数字 整数(按顺序)可以原创 2021-06-04 14:25:32 · 229 阅读 · 0 评论
分享