
刷题-算法
flood_d
这个作者很懒,什么都没留下…
展开
-
leetcode130(被围绕的区域)-并查集
1.codeclass Solution { class UnionFind{ int[] parents; public UnionFind(int totalNodes){ parents = new int[totalNodes]; for(int i=0;i<totalNodes;i++){ parents[i]=i; } }原创 2020-06-27 22:14:15 · 321 阅读 · 0 评论 -
leetcode 剑指 Offer 34
1.code/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { LinkedList<Integer> list = new LinkedList<&g原创 2020-06-21 11:46:32 · 354 阅读 · 0 评论 -
leetcode 剑指 Offer 07
1.code/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public int[] moredr; public Map<Integer,Intege原创 2020-06-21 11:30:38 · 309 阅读 · 0 评论 -
leetcode113题解
1.code/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { List<List<Integer>> allList = new ArrayLi原创 2020-06-14 22:42:39 · 252 阅读 · 0 评论 -
leetcode106题解
1.code/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public int[] morder; public Map<Integer,Intege原创 2020-06-14 21:45:58 · 257 阅读 · 0 评论 -
leetcode98题解
1.code/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public boolean isValidBSTHelp(TreeNode root, Integer原创 2020-06-14 18:07:03 · 295 阅读 · 0 评论 -
leetcode894题解记录
1.code/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { Map<Integer,List<TreeNode>> map = new Has原创 2020-06-07 20:25:55 · 208 阅读 · 0 评论 -
leetcode794题解
1.codeclass Solution { public boolean check(String[]board,char c){ for(int i=0;i<3;i++){ if(board[0].toCharArray()[i]==c&&board[1].toCharArray()[i]==c&&board[2].toCharArray()[i]==c){ return true;原创 2020-06-07 19:57:54 · 248 阅读 · 0 评论 -
leetcode779题解记录
1.codeclass Solution { public int kthGrammar(int N, int K) { if(N==1)return 0; return (~K & 1)^kthGrammar(N-1,(K+1)/2); }}2.题解分析第一行 0第二行 01第三行 0110第四行 01101001可以总结规律,某一行的第 K 个数字是上一行第 (K+1) / 2 个数字生成的。如果上一行的数字为 0,被生成的数字转载 2020-06-07 12:02:59 · 215 阅读 · 0 评论 -
【leetcode】43题代码记录
1.代码记录class Solution { public String multiply(String num1, String num2) { if("0".equals(num1)||"0".equals(num2))return "0"; char[] num1Ch = num1.toCharArray(); char[] num2Ch = num2.toCharArray(); String res = "0"; .原创 2020-05-31 19:19:13 · 326 阅读 · 0 评论 -
【leetcode】415题代码记录
1.通过代码class Solution { public String addStrings(String num1, String num2) { StringBuilder bu = new StringBuilder(); char[] num1Ch = num1.toCharArray(); char[] num2Ch = num2.toCharArray(); int up = 0; for(int i原创 2020-05-31 19:06:32 · 284 阅读 · 0 评论 -
Combinations
1.题目描述 Given two integers n and k, return all possible combinations of k numbers out of 1 … n. 传送门 2.code(java1.7版本)import java.util.*;class Solution { public List<List<Integer>> combine(int n,原创 2017-09-12 16:11:04 · 319 阅读 · 0 评论 -
序列化二叉树
1.题目描述 请实现两个函数,分别用来序列化和反序列化二叉树 传送门 2.code(java1.7版本)/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val =原创 2017-09-03 15:32:45 · 336 阅读 · 0 评论 -
链表中环的入口结点
1.题目描述 一个链表中包含环,请找出该链表的环的入口结点。 传送门 2.code(java1.7版本) nlogn复杂度的代码/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/import j原创 2017-09-02 21:07:38 · 242 阅读 · 0 评论 -
正则表达式匹配
1.题目描述 请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配 传送门 2.code(java1.7版本)public class Solution {原创 2017-09-02 19:32:31 · 397 阅读 · 0 评论 -
求1+2+3+...+n
1.题目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 传送门 2.code(java1.7版本)public class Solution { public int Sum_Solution(int n) { int sum=n; boolean ans=原创 2017-09-01 20:59:36 · 692 阅读 · 0 评论 -
扩展二进制数
1.题目描述 传送门 2.code(c++版本)#include<iostream>using namespace std;int dp[64][3][2]={0};int num[64]={0};int N;int dfs(int i,int j,int k){ if(i==0){ if(k==0)return 1; else return 0原创 2017-09-17 15:30:19 · 490 阅读 · 0 评论 -
和为S的连续正数序列
1.题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? 传送门 2.code(java1.7版本)import原创 2017-08-31 13:33:33 · 223 阅读 · 0 评论 -
数组中只出现一次的数字
1.题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 传送门 2.code(java1.7版本) 大多数人想到的常规的版本//num1,num2分别为长度为1的数组。传出参数//将num1[0],num2[0]设置为返回结果import java.util.*;public class Solution { public v原创 2017-08-30 17:34:18 · 369 阅读 · 0 评论 -
链表的反转
1.题目描述 输入一个链表,反转链表后,输出链表的所有元素。 2.code(java1.7版本)/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution {原创 2017-08-18 14:01:48 · 278 阅读 · 0 评论 -
顺时针打印矩阵
1.题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字, 例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 2.code(java1.7版本)import java.util.原创 2017-08-19 00:40:05 · 227 阅读 · 0 评论 -
Power方法的实现
1.题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 2.code(java1.7版本) O(n)的复杂度public class Solution { public double Power(double base, int exponent) { if(exponent==0){原创 2017-08-17 22:10:06 · 1040 阅读 · 0 评论 -
二叉搜索树的后序遍历序列
1.题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 2.code(java1.7版本) 递归版本public class Solution { public boolean help(int []sequence,int b,int e){ if(b==e)return原创 2017-08-20 15:35:22 · 305 阅读 · 0 评论 -
二叉树中和为某一值的路径
1.题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 2.code(java1.7版本)import java.util.ArrayList;/**public class TreeNode { int val = 0; TreeNode left = null; T原创 2017-08-20 23:18:52 · 235 阅读 · 0 评论 -
二叉搜索树与双向链表
1.题目描述(传送门) 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点(好像可以创建一两个。。),只能调整树中结点指针的指向。 2.code(java1.7版本) 直接中序遍历操作版本/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode rig原创 2017-08-21 18:59:30 · 309 阅读 · 0 评论 -
矩阵中的路径
1.题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串”bcced”的路径,但是矩阵中不包含”abcb”路径,因为字符串的第一个字符b原创 2017-09-03 21:15:52 · 324 阅读 · 0 评论 -
机器人的运动范围
1.题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子? 传送门 2.code(java1.7原创 2017-09-03 23:58:19 · 294 阅读 · 0 评论 -
最长上升子序列
1.题目描述 传送门 2.code(java1.7版本) n方的代码import java.util.*;public class Main{ public static int N; public static void main(String[]args){ Scanner sc=new Scanner(System.in); while(原创 2017-08-21 23:06:30 · 225 阅读 · 1 评论 -
有序01字符串
1.题目描述 传送门 2.code(java1.7版本)import java.util.*;public class Main{ public static void main(String[]args){ Scanner sc=new Scanner(System.in); int N=0; N=sc.nextInt();原创 2017-08-22 21:57:38 · 667 阅读 · 0 评论 -
算法的特征
一个算法应该具有以下五个重要的特征: 有穷性 (Finiteness) 算法的有穷性是指算法必须能在执行有限个步骤之后终止; 确切性 (Definiteness) 算法的每一步骤必须有确切的定义; 输入项 (Input) 一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件; 输出项 (Output) 一个算法有一个或多个输出,以反映对输原创 2017-09-05 20:37:13 · 2940 阅读 · 0 评论 -
合唱团
1.题目描述 有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗? 传送门 2.code(java1.7版本)import java.util.*;public class Main{ public static void main(Str原创 2017-09-06 01:06:00 · 322 阅读 · 0 评论 -
把数组排成最小的数
1.题目描述 传送门 2.code(java1.7版本)import java.util.*;public class Solution { public String PrintMinNumber(int [] numbers) { if(numbers==null)return ""; int len=numbers.length;原创 2017-08-24 15:54:13 · 263 阅读 · 0 评论 -
分田地
1.题目描述 牛牛和 15 个朋友来玩打土豪分田地的游戏,牛牛决定让你来分田地,地主的田地可以看成是一个矩形,每个位置有一个价值。分割田地的方法是横竖各切三刀,分成 16 份,作为领导干部,牛牛总是会选择其中总价值最小的一份田地, 作为牛牛最好的朋友,你希望牛牛取得的田地的价值和尽可能大,你知道这个值最大可以是多少吗? 传送门 2.code(java1.7版本)import java.uti原创 2017-09-07 00:36:05 · 910 阅读 · 0 评论 -
数组中的逆序对
1.题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 传送门 2.code(java1.7版本)public class Solution { public long ans=0; public int Invers原创 2017-08-29 23:28:09 · 264 阅读 · 0 评论 -
两个链表的第一个公共结点
1.题目描述 输入两个链表,找出它们的第一个公共结点。 传送门 2.code(java1.7版本) 复杂度O(n+a+b)/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class原创 2017-08-30 09:54:24 · 279 阅读 · 0 评论 -
巧妙解决整数二进制计算1的个数
1.题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 2.code(java1.7版本)public class Solution { public int NumberOf1(int n) { int count=0; while(n!=0){ count++; n=n&(n-1)原创 2017-08-17 21:29:25 · 383 阅读 · 0 评论