随笔分类 - 算法题目总结
摘要:给定任意一个自然数,获取它重新排列后,下一个比它大的自然数,要求时间复杂度O(n)。例如: 给定1233,它的下一个是1323; 给定1323,它的下一个是1332; 给定9876,它的下一个不存在; 请设计一个函数,完成此功能。(语言不限) 我的思路其实是遍历第一次 获取到数值值递增的波动点 然后
阅读全文
摘要:把0挪放到最后 这样的结果是不能保证非0的数组元素顺序的: 所以可以用空间换时间的方法做: 这样是比较简单的
阅读全文
摘要:代码如下:自己看吧 结果: 聊聊快排吧,这个有点类似快排的感觉 1、外面的大while条件是left<right 2、两个指针 一个左边 一个右边 3、如果两个指针所属的 值都属性是一样 (都是偶数 都是奇数) 4、来个while 根据实际情况移动下指针 移动到值属性不一样为止 5、不一样时候 判断
阅读全文
摘要:突然奇想。自己手写一个indexOf 易读性的,练练代码能力:
阅读全文
摘要:package com.toov5.test; public class Test3 { public static void main(String[] args) { String max = "okokvv,okwer,wroksdf,fsdf"; String min = "ok"; int count ...
阅读全文
摘要:二叉树宽度: 使用队列,层次遍历二叉树。在上一层遍历完成后,下一层的所有节点已经放到队列中,此时队列中的元素个数就是下一层的宽度。以此类推,依次遍历下一层即可求出二叉树的最大宽度
阅读全文
摘要:public class HeapSort { 1. 2. public static void sort(Comparable[] data) { 3. // 构建最大堆 4. buildMaxHeap(data); 5. // 循环,每次把根节点和最后一个节点调换位置 后面的扔了搞前面的 ...
阅读全文
摘要:public class Solution { public int NumberOf1Between1AndN_Solution(int n) { int count=0; for(int i=1;i<=n;i++){ count+=core(i); } re...
阅读全文
摘要:上面的解法 时间复杂度 空间复杂度较高
阅读全文
摘要:class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } public class Solution { public TreeNode C...
阅读全文
摘要:题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
阅读全文
摘要:import java.util.ArrayList; import java.util.LinkedList; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this...
阅读全文
摘要:题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出序列。假设压入栈的所有数字均不相等。例如序列1/2/3/4/5是某栈的压栈序列,序列4/5/3/2/1是该压栈序列对应的一个弹出序列,但4/3/5/1/2就不可能是该压栈序列的弹出序列;
阅读全文
摘要:package Problem19; /* * 问题描述: * 请完成一个函数,输入一个二叉树,该函数输出它的镜像; */ //定义二叉树的结构 class BinaryTreeNode { BinaryTreeNode leftNode; BinaryTreeNode rightNode; int value; } public class Mirror...
阅读全文
摘要:package Problem14; /* * 问题描述: * 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位与数组的前半部分,所有偶数位与数组的 * 后半部分 */ public class ReorderOddEven { public static void reOrder(int array[]) { int firstIndex...
阅读全文