OJ
东东24
这个作者很懒,什么都没留下…
展开
-
LeetCode-1二个数之合
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,2,4], target = 6 输出:[1,2原创 2021-04-12 20:18:27 · 61 阅读 · 0 评论 -
剑指offer_10二进制中一的个数(Java版)
题目描述 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。 示例1 输入 10 返回值 2 public int numberOf(int n ) { // 计算机储存编码是二进制 所有可以直接用& 这个数与上1是否 为0 可以判断最后一位是否为1 然后将左移 一位 //循环条件 32次 也可以是当1 为0 时 即左移32次 缺点:时间复杂多过大 int count = 0 ; int原创 2021-03-25 11:09:00 · 77 阅读 · 0 评论 -
剑指offer_12调整数组使奇数位于偶数的前面(Java版)
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 示例1 输入 [1,2,3,4] 返回值 [1,3,2,4] 整体思路:运用直接插入排序的思想 public static void reOrderArray(int [] array) { //相对位置不变,稳定性 //插入排序的思想 // .定义一个k值 标记已经摆好奇数的原创 2021-03-25 11:03:30 · 47 阅读 · 0 评论 -
剑指offer-07 用二个栈来实现队列 (Java版)
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路 1.添加对于队列和栈一样 假设stack1为添加的容器 直接添加就可以 2. 删除操作 先判断二个栈是否为空 为空抛出异常 3. 判断stack 2 是否为空 为空将stack1 的所有元素添加 到 stack2 里面 出栈从stack2 出. Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> st原创 2021-03-19 21:31:47 · 38 阅读 · 0 评论 -
剑指offer-06 重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 示例1 输入 复制 [1,2,3,4,5,6,7],[3,2,4,1,6,5,7] 返回值 复制 {1,2,5,3,4,6,7} 思路:1如果二个数组都为空的时候直接返回一个空的节点 2.前序遍历的第一个节点为树的根节点然后找到第二个数组的那个值,找到那个值.原创 2021-03-19 20:07:45 · 47 阅读 · 0 评论 -
剑指offer -05 从尾到头打印链表
题目描述: 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 示例1 输入 复制 {67,0,24,58} 返回值 复制 [58,24,0,67] 解题思路:1.然后遍历那个要逆转的链使用ArrayList的方法头插 class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } import java.util.ArrayList;原创 2021-03-14 16:36:28 · 45 阅读 · 0 评论