随笔分类 - Java题目
摘要:import java.util.ArrayList; import java.util.List; //算法原理:从2开始,将[2, 根号n]中每个素数当作最小质因数去标记合数,剩下的就都是素数。(对比埃氏筛法理解) //时间复杂度:O(n) /* 算法中break那行代码的原理最难理解,作用就是
阅读全文
摘要:/* 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 输入: [7,5,6,4] 输出: 5 */ //其实就是归并排序 在左侧的一个元素大于右数组的一个元素时 左侧元素本身以及左数组剩余的元素都能组成一个逆序对 clas
阅读全文
摘要:public class 丑数 { public static void main(String[] args) { int result; result = new 丑数().GetUglyNumber_Solution(7); System.out.println(result); } publ
阅读全文
摘要://归纳当前为cur为不同值时当前为1的个数的规律 public class 整数1出现的次数优解 { public static void main(String[] args) { int count = new 整数1出现的次数优解().NumberOf1Between1AndN_Soluti
阅读全文
摘要://输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 //第一种方法利用先序遍历 获得所有路径的长度 然后取最长的 import java.util.*; public class Solution { ArrayList<In
阅读全文
摘要:import java.util.ArrayList; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val
阅读全文
摘要:/* 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。 示例1 [4,8,6,12,16,14,10] true */ public boolean helpVerify(int [] seq
阅读全文
摘要:import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */ public class Solution { /** *
阅读全文
摘要:import java.util.ArrayList; import java.util.Stack; public class MediumToLast {//中缀表达式转后缀(默认字符串无异常) public static void main(String[] args) { //a+b*c+(
阅读全文
摘要:import java.util.Stack; /* 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。 假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列, 但4,3,5,1
阅读全文
摘要:import java.util.Stack; /*题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 思路:定义min记录最小值 创建一个min栈用来存最小值,这个min栈的top元素就是当前栈的最小值 当原栈pop元素时判定 若pop
阅读全文
摘要://第一种 n&(n-1)可以使n从右数第一个1变成0 那么能进行几次n&(n-1) 就有几个1 public class Solution { public int NumberOf1(int n) { int count = 0; while(n!=0){ count++; n = n&(n-1
阅读全文
摘要:/* 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 返回值描述: 如果是合法的数值表达则返回该数字,否则返回0 示例1 输入 +2147483647" 返回值 2147
阅读全文
摘要:/* 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 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. 示例1 输入 [[1
阅读全文
摘要:import java.util.*; /* 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 示例1 输入 {1,3,5},{2,4,6} 返回值 {1,2,3,4,5,6} 1. 暴力法 */ public class Solution { publi
阅读全文
摘要:/* 题目描述 输入一个链表,反转链表后,输出新链表的表头。 示例1 输入 {1,2,3} 返回值 {3,2,1} 初始化:3个指针 1)pre指针指向已经反转好的链表的最后一个节点,最开始没有反转,所以指向nullptr 2)cur指针指向待反转链表的第一个节点,最开始第一个节点待反转,所以指向h
阅读全文
摘要:/* 输入一个链表,输出该链表中倒数第k个结点。 输入 复制 1,{1,2,3,4,5} 返回值 复制 {5} */ public class Solution { public ListNode FindKthToTail(ListNode head,int k) { if(head==null)
阅读全文
摘要:/* 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 */ //使用额外数组时 时间O(n) 空间O(n) //不使用额外数组时 时间O(n^2) 空间O(1) import j
阅读全文
摘要:/* * * 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例1 输入 7,[[1,2,8,9],[2,4,9,12],[4,7,10,13
阅读全文
摘要:/* * 题目描述 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。 不能使用除法。(注意:规定B[0] = A[1] * A[2] * ... * A[n-1
阅读全文

浙公网安备 33010602011771号