随笔分类 - Algorithm Practice
摘要:思路: 1.1-9 有9 位数,10-99 有180 位。因此我们首先找到这个位数是几位数。 2.在找到这个数, 3.确定这个数的第几位是我们要找的。 代码:
阅读全文
摘要:方法1.在x轴[-1, 1],y轴[-1, 1]的正方形内随机选取一点。然后判断此点是否在圆内(通过计算此点到圆心的距离)。如果在圆内,则此点即为所求;如果不在,则重新选取直到找到为止。正方形的面积为4,圆的面积为pi,所以正方形内的随机点在圆内的概率是 pi / 4。 方法2.从[0, 2*pi)
阅读全文
摘要:这段程序主要用于比较sdk的版本号,例如 8.9.1 和8.9.0,8.9.1和8.7的比较。
阅读全文
摘要:public ListNode deleteDuplication(ListNode pHead) { if(pHead==null){ return null; } ListNode preNode = null; ListNode curNode = pHead; w...
阅读全文
摘要:public class DeleteNode { public static void main(String[] args){ Solution18 solution18 = new Solution18(); ListNode18 head = solution18.initLinkList(new ListNode18()); ...
阅读全文
摘要:/*输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分, 所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。*/ public class ReorderArrayOddBeforeEven { public static void main(String args[]){ int intArr...
阅读全文
摘要:package ;
阅读全文
摘要:输入数字n,按顺序打印出从1到最大的N位十进制数,比如输入3,则打印出1、2、3一直到最大的3位数999.
阅读全文
摘要:/** * @Name: * @Description: * @Author: Allen */ public class PowerCalculate16 { public static void main(String[] args) { Solution16 solution16= new Solution16(); System.out...
阅读全文
摘要:第一个指针总是指向前面递增数组中的元素,第二个指针总是指向后面递增数组中的元素。最终,第二个指针刚好指向的是最小的元素。 用二分法,时间复杂度:O(logn)。 考虑到足够多的测试用例: {5,6,7,8,9,1,2,3,4} {2} {3,2} {1,2,3,4} {1,1,0,1,1,1,1,1
阅读全文
摘要:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路 入队列:将元素依次进入Stack1中. 出队列:如果Stack2是空的,将Stack1中的元素全部移到Stack2中,从Stack2中出队列。如果非空,直接从Stack2中出队列.
阅读全文
摘要:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。 注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
阅读全文
摘要:采用递归的方法,每次递归都可以找到子树的根结点的值。 注意点:合理确定递归函数中传递的参数。
阅读全文
摘要:可以使用 来实现从尾到头打印链表,而递归在本质上也是栈结构,所以最最简洁的代码是用递归实现; 完整代码如下:
阅读全文
摘要:package siweifasan_6_5; import org.omg.CORBA.INTERNAL; /** * @Description:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1], * 其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。 * @Author: ...
阅读全文
摘要:package siweifasan_6_5; import java.util.Scanner; /** * @Description:写一个函数,求两个整数之和,要求在函数体内不得使用 * +、-、*、/四则运算符号。 * @Author: Allen */ public class Main02 { public static void main(String[] ...
阅读全文
摘要:package siweifasan_6_5; import java.util.Scanner; /** * @Description:求1+2+3+...+n, * 要求不能使用乘除法、for、while、if、else、switch、case * 等关键字及条件判断语句(A?B:C)。 */ public class Main01 { int sum=0; ...
阅读全文
摘要:1.C语言实现。 请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如,9表示成二进制是1001,有2位是1。因此如果输入9,则该函数输出为2。 思路:把一个整数减1,将得到的整数与原来的整数做 位与 运算,会把该整数最右边的1变成0,依次循环,直到整数中所有的1变成0循环结束。则循环执
阅读全文
摘要:package day10_29; /** * @Name: * @Description:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。 * 路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。 * 如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d ...
阅读全文
摘要:动态规划解法:
阅读全文

浙公网安备 33010602011771号