随笔分类 - 剑指offier算法题
剑指offier算法题
摘要:【问题描述】 在Excel中,列的名称是这样一个递增序列:A、B、C、…、Z、AA、AB、AC、…、AZ、BA、BB、BC、…、BZ、CA、…、ZZ、AAA、AAB…。我们需要将上述列名序列和以下自然数序列相互转换:1、2、3、…。 【问题分析】 经过分析,我们不难发现,这是一个26进制和十进制相互
阅读全文
摘要:1.问题描述 一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。 2.问题分析设f(n)表示青蛙跳上n级台阶的跳法数。当只有一个台阶时, 即n = 1时, 只有1中跳法; 当n = 2时,有两种跳法; 当n = 3 时,有3种跳法; 当n很大时,青蛙在
阅读全文
摘要:输入一个链表,反转链表后,输出新链表的表头。 第一种用了四个指针,没有下一个简单 这个解发用了三个,比较好
阅读全文
摘要:package StackMin.ReverseList_offer16; public class ReverseKgroup_extend_offer16 { /** * 分组反转单链表,最后不足K个节点的部分也反转 * * @param head * @param k * @return */ publi...
阅读全文
摘要:输入一个链表,输出该链表中倒数第k个结点。 方法1: 这个解法要循环两次链表 方法2:快慢指针 可以参考单链表成环 https://www.cnblogs.com/chengpeng15/p/9868109.html
阅读全文
摘要:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
阅读全文
摘要:import java.util.Scanner; /* 前两种方法是看最低为是不是为1,不为1则向右移动。 第一种只能对正整数有效,对负数不行,因为负数用的是补码,最高外符号位为1,最后右移动,肯定会变成0xFFFFFFFFFF。。。。F*/ public class FindNmuberOf1 { public static void main(String[] args) {...
阅读全文
摘要:/* * 输入字母判断第几列 */ import java.util.Scanner; public class JudgeClumns { public static void main(String[] args) { Scanner str = new Scanner(System.in); while(str.hasNextLine()){ String Char...
阅读全文
摘要:1.插入元素进入队列时,将元素push到stack1中。当有元素出队列时,先将所有元素插入到stack2中,然后进行出栈。出栈结束后,再将剩余元素放回stack1中。这个算法不是最优的。接下来介绍一个从剑指offer中看到的一种算法。 2 入队列:直接将元素插入stack1中。 出队列:如果stac
阅读全文
摘要:输入一个链表,从尾到头打印链表每个节点的值。 但是 根据往常的经验 如果if里面有return了 就不要写else了 下面是递归调用
阅读全文
摘要:这个方法和上一个用for循环的都比较好,没有额外开辟空间,没有改变原来的str
阅读全文
摘要:package 剑指office; /* * 第三题二维数组查找 * 在一个二维数组中,每一行都按照从左到右递增的顺序排序, * 每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 */ public class FindArray { /* * 一种是: 把每一行看成有序递增的数组, 利用二分查找, 通过遍历每一行...
阅读全文

浙公网安备 33010602011771号