![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
retemin
脑子不好就多努力一点
展开
-
初级排序算法
初级排序算法 模板:定义了基本的辅助函数 传入了实现了Comparable接口的数据类型的数组 class Sort{ public void sort(Comparable [] a){} public static boolean less(Comparable v,Comparable w){ return v.compareTo(w)<0; ...原创 2019-11-18 23:13:18 · 103 阅读 · 0 评论 -
栈和队列
栈和队列 题目:用两个栈实现队列 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路: 栈是一种先进后出的数据结构,队列是一种先进先出的数据结构,两个栈,一个用来保存入栈,一个用来保存出栈的顺序 public class Solution { Stack<Integer> stack1 = new Stack<Integer>...原创 2019-11-17 19:34:25 · 83 阅读 · 0 评论 -
二叉树的下一个节点
二叉树的下一个节点 题目: 给定一棵二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点?树中的节点除了有两个分别指向左右节点的指针,还有一个指向父节点的指针 思路: 针对于中序遍历,具体做法是先遍历左子树,然后再遍历根节点,最后遍历右子树。 我们在判断下一个节点的时候大概是这样一个思路,如果该节点有右子节点的话,进入右子树,然后遍历右子树的最左边的一个节点; 如果给定的节点没有右子树,那么就...原创 2019-11-17 10:01:28 · 86 阅读 · 0 评论 -
树的基本操作
树 题目:重构二叉树 输入输入某二叉树的前序遍历和中序遍历的结果,请重构该二叉树。 假设输入的前序遍历和中序遍历的结果中都不包含重复的数字。例如,输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},重建该树。树的结点类如下: class TreeNode{ int value; TreeNode left; TreeNode right; T...原创 2019-11-16 19:21:01 · 192 阅读 · 0 评论 -
链表操作(从尾到头打印数字)
链表操作(从尾到头打印数字) 题目: 输入一个链表的头结点,从尾到头返过来打印出每个节点的值,链表的定义如下: class ListNode{ int val; ListNode next = null; ListNode(int val){ this.val = val; } } 解决方法: 思路一: 利用栈的数据结构,将链表遍历一遍,保存在栈中,利用...原创 2019-11-14 17:38:15 · 248 阅读 · 0 评论 -
字符串替换
字符串替换 题目: 实现一个函数,把字符串中的每个空格替换成“%20” ,例如,输入“We are happy”,输出“We%20are%20happy” 解决: 利用字符串替换,使用StringBuilder重新生成一个字符串 public String replaceSpace(StringBuffer str) { StringBuilder sb = new StringB...原创 2019-11-14 10:44:56 · 132 阅读 · 0 评论 -
二维数组中的查找
二维数组中的查找 题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序,请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 解决: 思路一:暴力破解 直接遍历一遍二维数组,就可以找出是否存在,这里的时间复杂度为O(n2) public boolean Find(int target, int [][] array) { ...原创 2019-11-14 10:11:50 · 134 阅读 · 0 评论 -
数组中重复的数字
数组中重复的数字 问题描述: 在一个长度为n的数组中的所有数字都在0~n-1范围内,数组中某些数字是重复的,,需要找出其中的任意一个重复的数字。 例子:{2,3,1,0,2,5,3} 输出2或者3 思路一: 最简单的方式就是将其排序,然后从排好序的数组中找出重复的数字 思路二: 遍历一遍数组,当扫描到下标为i的数字时,首先比较这个数字(用m表示)是不是等于i,如果是,直接扫描下一个数字,...原创 2019-11-13 18:04:44 · 147 阅读 · 0 评论 -
位运算
知识点:位运算 左移运算符m<<n 表示把m左移n位,在左移n位的时候,最左边的 位将被丢弃,同时在最右边补上n个0,比如: 00001010 << 2 = 00101000 10001010 << 3 = 01010000 右移运算符 m>> n 表示把m右移n位,在右移n位的时候,最右边n位 将被丢弃,这里分两种情况: 如果数字是一个无符号数值...原创 2019-11-13 14:57:57 · 63 阅读 · 0 评论