欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
  • 剑指offer之队列中的最大值(C++/Java双重实现)

    1.题目描述请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1示例 1:输入:[“MaxQueue”,“push_back”,“push_back”,“max_value”,“pop_front”,“max_value”][[],[1],[2],[],[],[]]输出: [null,null,null,2,

    程序员文章站2022-11-30
  • 剑指offer之在排序数组中查找数字 I(C++/Java双重实现)

    1.题目描述剑指 Offer 53 - I. 在排序数组中查找数字 I统计一个数字在排序数组中出现的次数。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0限制:0

    程序员文章站2022-10-03
  • 剑指offer(Java实现)56 - 数组中只出现一次的两个数字

    数组中只出现一次的两个数字-56-1一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。你可以假设这两个数字一定存在。样例输入:[1,2,3,3,4,4]输出:[1,2]思路:先依次异或,出现两次的数字都会变成0,两个只出现一次的数字肯定至少有一位是不同的,找...

    程序员文章站2022-07-15
  • 剑指offer 用两个栈实现队列 Java

    题目题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。题解首先想到栈是FILO,队列是FIFO,那么就很容易想到队列出队POP操作的实现方法为:  1.我们进行入队操作时,直接将元素Push进stack1中;  2.此时stack1中的元素都是倒着排放的,第...

    程序员文章站2022-07-10
  • 剑指offer_面试题:数组中重复的数字_Java实现

    题目一:具体三种实现方式参见代码:import java.util.*;public class First {public static void main(String[] args) {//处理输入Scanner in = new Scanner(System.in);int n = in.nextInt();int[] array = new int[n];for(int i = 0; i < n; i++)array[i] = in.n

    程序员文章站2022-07-05
  • Java/Python实现 LeetCode剑指Offer 14-I.剪绳子(动态规划)

    给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 3

    程序员文章站2022-07-02
  • 剑指Offer:重建二叉树(Java实现)

    原题:点击此处这道题真的折磨了好几次,都还是不会。这次总结了几个关键点,希望下次再打的时候可以记住。关键点:可以使用哈希表来记住中序遍历的值对应的索引,这样就不用每次都过一次循环了。前序遍历最重要的作用就是找到根节点罢了,所以递归的时候传入根节点的位置就可以了,不用考虑前序遍历的开始和结束中序遍历要...

    程序员文章站2022-06-24
  • 《剑指offer》NO29 顺时针打印矩阵 详解 <Java实现>

    public ArrayList printMatrix(int[][] matrix) { ArrayList res = new ArrayList(); //定义行与列的做大最小值 int r1 = 0, r2 = matrix.length - 1; int c1 = 0, c2 = matrix[0].length - 1; ...

    程序员文章站2022-06-24
  • 剑指offer-扑克牌顺子 -- Java实现

    剑指offer-扑克牌顺子 -- Java实现

    题目分析思路一:可以这么理解,简单来说就是要是5个数字,最大和最小差值在5以内,并且没有重复数值。用一个set来填充数据,0不要放进去。set的大小加上0的个数必须为5个。此外set中数值差值在5以内。代码:import java.util.TreeSet;public class Solution...

    程序员文章站2022-06-17
  • 剑指offer之数值的整数次方(C++/Java双重实现)

    剑指offer之数值的整数次方(C++/Java双重实现)

    1.题目描述实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n 是 3

    程序员文章站2022-06-17
    IT编程
  • 剑指offer题解(Java实现)—— 面试题2:实现Singleton模式

    文章目录前言题目描述解题思路代码实现不好的解法一:只适用于单线程环境1、懒汉式2、饿汉式不好的解法二:虽然在多线程环境中能工作,但效率不高可行的解法三:加同步锁前后两次判断实例是否存在墙裂推荐的解法四:利用静态代码块墙裂推荐的解法五:使用静态代码块,按需创建 instance 实例总结后记前言本系列...

    程序员文章站2022-06-03
  • 剑指offer之队列中的最大值(C++/Java双重实现)

    剑指offer之队列中的最大值(C++/Java双重实现)

    1.题目描述请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1示例 1:输入:[“MaxQueue”,“push_back”,“push_back”,“max_value”,“pop_front”,“max_value”][[],[1],[2],[],[],[]]输出: [null,null,null,2,

    程序员文章站2022-05-21
    IT编程
  • 1、剑指offer之二维数组的查找,题目解析和java实现方法

    1、剑指offer之二维数组的查找,题目解析和java实现方法

    题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。要求时间限制:1秒 空间限制:32768K题目解析输入参数是一个二位数组和一个整数,其中二维数组每一行都按照从左到右递增的顺序...

    程序员文章站2022-05-20
  • 剑指offer之在排序数组中查找数字 I(C++/Java双重实现)

    剑指offer之在排序数组中查找数字 I(C++/Java双重实现)

    1.题目描述剑指 Offer 53 - I. 在排序数组中查找数字 I统计一个数字在排序数组中出现的次数。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0限制:0

    程序员文章站2022-05-18
    IT编程
  • 剑指offer编程题判断一个二叉树是否为对称的java实现(镜像二叉树,递归)

    剑指offer编程题判断一个二叉树是否为对称的java实现(镜像二叉树,递归)

    编程题判断一个二叉树是否为对称的java实现题目描述问题分析代码及解释别人的代码总结题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。问题分析这个问题的切入点是二叉树的镜像,二叉树和它的镜像相同意味着(以下图为例)根节点的左右子树相...

    程序员文章站2022-05-05
  • 剑指offer_面试题:数组中重复的数字_Java实现

    剑指offer_面试题:数组中重复的数字_Java实现

    题目一:具体三种实现方式参见代码:import java.util.*;public class First {public static void main(String[] args) {//处理输入Scanner in = new Scanner(System.in);int n = in.nextInt();int[] array = new int[n];for(int i = 0; i < n; i++)array[i] = in.n

    程序员文章站2022-04-11
    IT编程
  • Java/Python实现 LeetCode剑指Offer 14-I.剪绳子(动态规划)

    Java/Python实现 LeetCode剑指Offer 14-I.剪绳子(动态规划)

    给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 3

    程序员文章站2022-04-09
    IT编程
  • 剑指Offer:重建二叉树(Java实现)

    剑指Offer:重建二叉树(Java实现)

    原题:点击此处这道题真的折磨了好几次,都还是不会。这次总结了几个关键点,希望下次再打的时候可以记住。关键点:可以使用哈希表来记住中序遍历的值对应的索引,这样就不用每次都过一次循环了。前序遍历最重要的作用就是找到根节点罢了,所以递归的时候传入根节点的位置就可以了,不用考虑前序遍历的开始和结束中序遍历要...

    程序员文章站2022-03-23
    IT编程
  • 剑指offer之数值的整数次方(C++/Java双重实现)

    剑指offer之数值的整数次方(C++/Java双重实现)

    1.题目描述实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n 是 3

    程序员文章站2022-03-21
    IT编程
  • 《剑指offer》NO29  顺时针打印矩阵 详解 <Java实现>

    《剑指offer》NO29 顺时针打印矩阵 详解 <Java实现>

    public ArrayList printMatrix(int[][] matrix) { ArrayList res = new ArrayList(); //定义行与列的做大最小值 int r1 = 0, r2 = matrix.length - 1; int c1 = 0, c2 = matrix[0].length - 1; ...

    程序员文章站2022-03-20
    IT编程