摘要:
面试题37:序列化二叉树:即将一棵二叉树转换为字符串,反序列化二叉树即把序列化为二叉树的字符串转换为二叉树。思想:采用二叉树的前序遍历方法来对二叉树进行序列化具体代码如下: //序列化二叉树 public String SerializeBinaryTree(TreeNode root) { Str 阅读全文
摘要:
题目描述:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。 题目分 阅读全文
摘要:
package com.zc.algorithm;public class QuickSort { //快速排序:挖坑法 public int partition(int[] arr, int left, int right) { if(left<right) { int temp = arr[le 阅读全文
摘要:
/* *代码亲自测试 */public class BubbleSort { //冒泡排序:简单算法 public int[] sort1(int[] arr) { int temp = 0; for(int i = 0; i < arr.length; i++) { for(int j = 0; 阅读全文
摘要:
给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。 示例 1: 输入: [3,0,1] 输出: 2 示例 2: 输入: [9,6,4,2,3,5,7,0,1] 输出: 8 说明: 你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来 阅读全文
摘要:
给定一个整数数组,判断是否存在重复元素 1。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 示例 1: 输入: [1,2,3,1] 输出: true 示例 2: 输入: [1,2,3,4] 输出: false 示例 3: 输入: [1,1,1, 阅读全文
摘要:
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 示例 2: 说明: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 要求使用空间复杂度为 O(1) 的原地算法。 解法1: class Solution { public void rotate(i 阅读全文
摘要:
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,2,2] 输出: 2解法一:思路:从第一个数开始coun 阅读全文
摘要:
题目描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 阅读全文
摘要:
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例 2: 输入: 阅读全文