题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
思路
可以看成是一个排序问题,先将整型数组转换成String数组,在比较两个字符串 o1 和 o2 的大小时,应
Elimination Game
这道题目出于leetcode,题目虽然很简单但是很有趣,因为有趣才能称得上游戏吧!
0x00 题目介绍
简单介绍一下题目意思
给定一个数字N(N>0),一个列表存着1~N的数字。每次从左到右从第一个数字开始,然后隔开一个数字删除数字,一直删除到最后再从右向左删
题目描述
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
思路
回溯法
二叉树的深度优先遍历+每次遍历均判断是否达到条件,若是则输出
root入栈,跳入该子树进行寻路操作
若root的这条路径,已满足要求,
时间复杂度为O(logN)的常用算法
折半查找
/*
* 折半查找
* 默认查找的数组已经排过序
*/
public static int binarySearch(int[] a,int x){
int low=0,high=a.length
源自剑指offer中的思考题,有序数组A、B,A有足够空间容纳B,将A,B按顺序排列。
思路:
也是用两个指针从尾部开始进行依次比较,较大的放在新数组的后边,然后指针依次转移。
1. la,lb分别指向A和B的尾部,index指向融合数组的尾部;
2.然后比较,大的放在index中,index向前移
题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路
使用两个队列一个存放节点,一个存放值。先将根节点加入到队列中,然后遍历队列中的元素,遍历过程中,访问该元素的左右节点,再将左右子节点加入到队列中来
代码实现
package Tree;
import java.util.Arr
数组
数组中重复的数字
二维数组中的查找
构建乘积数组
字符串
替换空格
字符流中第一个不重复的字符
表示数值的字符串
递归和循环
斐波那契数列
跳台阶
变态跳台阶
矩形覆盖
链表
从尾到头打印链表
删除链表中重复的结点
链表中环的入口结点
树
把二叉树打印成多行
按之字形顺序打印二叉树
对称的二叉
描述
Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = target?
Find all unique quadruplets in the array
题目大意:给定一个矩形和一些线段,线段将矩形分割为从左至右的若干部分,之后给出一些玩具的坐标,求每个部分中玩具的数量
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
题目描述
如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。
思路
思路一:
维护一个数组,每次加入后,进行排序,当总元素个数为奇数时,中位数就是数组中间的元素;当
题目描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
思路
思路一:
利用HashMap记录每个数字以及数字出现的次数,没出现过的就
描述
Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target.
Return the sum of the three integ
描述
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would hav
题目描述
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
思路
思路一:
利用正则表达式,对字符串中
题目描述
输入一个链表,反转链表后,输出链表的所有元素。
代码思路
要反转链表即要把每个节点的next指针反转,考虑下面的链表:
1 -> 2 -> 3 -> 4
第一次反转时若把2的next指针直接指向1,则会出现下列情况:
1 <- 2
一 写在前面
1.1 本文内容
一个关于素数的性质。
二 素数性质
性质:所有大于等于5的素数一定和6的倍数相邻!此性质可以被证明,证明方法可以去搜索相关资料。下面给出1000以内的素数,你可以验证一下看是不是这样。
有了这个性质,下面再给出一个其在质因数分解中的实际应用例子。题目链接在此
using System.Linq;
using System.Text;
namespace ConsoleApplicationl
{
class Program
{
static void Main(string[] arge)
有头链表
有头链表:用一个固定的假节点来充当头节点(此节点不算作链表长度,仅用于简化算法)
public class Operate {
public static void main(String[] args){
Node n1=new Node(101, "熊大");
插入和删除节点
相对于数组,链表的特点:
1.可以有无限多个节点,长度不限制
2.无论插入还是删除,并不需要挪动位置
建立一个节点对象,里面包含id,name,和下一个节点
public class Node {
public int id;
public String nam
简介:本文主要介绍了B树和B+树的插入、删除操作。写这篇博客的目的是发现没有相关博客以举例的方式详细介绍B+树的相关操作,由于自身对某些细节也感到很迷惑,通过查阅相关资料,对B+树的操作有所顿悟,写下这篇博客以做记录。由于是自身对B+树的理解,肯定有考虑不周的情况,或者理解错误的地方,请留言指出。