摘要:
本题要求时间复杂度为log(m+n),不让合并用额外的空间:算法描述:1 选定两个数组A,B并计算长度,根据长度和m+n是偶数还是奇数,分为两种查找中位的方式;如果和为偶数:Value[(m+n)/2]+Value[(m+n)/2+1]如果为奇数:Value[(m+n)/2]2 然后通过迭代计算中位数通过假定A长度小于B,然后选择每个数组的中间k/2元素,如果A的中位数,小于B的中位数,则A中位数前面的元素都小于value(k),这样重新选择A的起始点,并减去k值为k-pa;如果,B中的小,这让B的长度减去pb,然后重新开始;重视让A的长度小于B的长度;k每次递减,m,n分别表示数组剩余长度; 阅读全文
摘要:
package com.bupt.acm.leetcode;public class SurroundedRegions { public void solve(char[][] board){ boolean up,down,left,right; for(int i=1;i<board.length-1;i++){ for(int j=1;j<board[0].length-1;j++){ up=down=left=right=false; if(board[i][j]=='... 阅读全文
摘要:
There areNchildren standing in a line. Each child is assigned a rating value.You are giving candies to these children subjected to the following requirements:Each child must have at least one candy.Children with a higher rating get more candies than their neighbors.package com.bupt.acm.leetcode;impo 阅读全文
摘要:
该算法更为巧妙,不用保存原始链表的映射关系,构建新节点时,指针做如下变化,即把新节点插入到相应的旧节点后面:1、构建新节点random指针:new1->random = old1->random->next, new2-random = NULL, new3-random = NULL,new4->random = old4->random->next2、恢复原始链表以及构建新链表:例如old1->next = old1->next->next, new1->next = new1->next->next本人额原算法超时: 阅读全文
摘要:
本文算法对于:大数据aaaaaaaaaaaaaaaaaaaaaaa;无法通过时间越界Last executed input:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab", ["a","aa","aaa","aaaa","aaaa 阅读全文
摘要:
public class LRULinkedHashMap extends java.util.LinkedHashMap { public final int maxCapacity; public LRULinkedHashMap(int capacity){ this.maxCapacity=capacity; } @Override protected boolean removeEldestEntry(java.util.Map.Entry eldest) { // TODO Auto-generated method stu... 阅读全文
摘要:
二、三种遍历方式的非递归实现 为了便于理解,这里以下图的二叉树为例,分析二叉树的三种遍历方式的实现过程。1、前序遍历的非递归实现根据先序遍历的顺序,先访问根节点,再访问左子树,后访问右子树,而对于每个子树来说,又按照同样的访问顺序进行遍历,上图的先序遍历顺序为:ABDECF。非递归的实现思路如下:对于任一节点P,1)输出节点P,然后将其入栈,再看P的左孩子是否为空;2)若P的左孩子不为空,则置P的左孩子为当前节点,重复1)的操作;3)若P的左孩子为空,则将栈顶节点出栈,但不输出,并将出栈节点的右孩子置为当前节点,看其是否为空;4)若不为空,则循环至1)操作;5)如果为空,则继续出栈,但不输出, 阅读全文
摘要:
怎么记忆稳定性:总过四大类排序:插入、选择、交换、归并(基数排序暂且不算)比较高级一点的(时间复杂度低一点得)shell排序,堆排序,快速排序(除了归并排序)都是不稳定的,在加上低一级的选择排序是不稳定的。比较低级一点的(时间复杂度高一点的)插入排序, 冒泡排序,归并排序,基数排序都是稳定的。 阅读全文
摘要:
help()一:不同的环境下1.交互模式下(命令行) 查看模块的帮助信息:[python]view plaincopyprint?importpicklehelp(pickle)可以看到详细信息,--More--上回车,滚动信息。q 退出帮助2.ide里,需要做一个输出。[python]view plaincopyprint?importpickleprint(help(pickle))二:查看不同属性的帮助信息的方法1.模块和内建函数help(模块名/内建函数名)2.模块中的函数[python]view plaincopyprint?import模块help(模块.方法名)dir()1.列出 阅读全文
摘要:
df命令用来查看系统的space和inode使用情况,也是常用命令之一-a 显示所有的文件系统,包括本地的和挂载的网络文件系统-h 显示大小的时候,以人性化的方式来显示,以更适合的方式来显示-T 现实文件系统类型-t 显示指定的文件系统-l 只显示本地文件系统-k 以KB为单位显示-x 不显示指定的文件系统-i 显示inode使用情况 阅读全文