随笔分类 -  算法

算法
摘要:今天面试好打脸!!! 阅读全文
posted @ 2019-04-23 22:21 鹏鹏进阶 阅读(244) 评论(0) 推荐(0)
摘要:import java.util.HashMap; import java.util.Map; /** * 在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出'b'。 * aabb 0 * aba b * aAa A */ public class Third { public static char findFirstNoRepeatChar... 阅读全文
posted @ 2019-04-23 22:21 鹏鹏进阶 阅读(1812) 评论(0) 推荐(0)
摘要:参考 1 图解排序算法(三)之堆排序 https://www.cnblogs.com/chengxiao/p/6129630.html 阅读全文
posted @ 2019-04-22 11:04 鹏鹏进阶 阅读(155) 评论(0) 推荐(0)
摘要:【问题描述】 在Excel中,列的名称是这样一个递增序列:A、B、C、…、Z、AA、AB、AC、…、AZ、BA、BB、BC、…、BZ、CA、…、ZZ、AAA、AAB…。我们需要将上述列名序列和以下自然数序列相互转换:1、2、3、…。 【问题分析】 经过分析,我们不难发现,这是一个26进制和十进制相互 阅读全文
posted @ 2019-04-01 11:36 鹏鹏进阶 阅读(689) 评论(0) 推荐(0)
摘要:1.问题描述 一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。 2.问题分析设f(n)表示青蛙跳上n级台阶的跳法数。当只有一个台阶时, 即n = 1时, 只有1中跳法; 当n = 2时,有两种跳法; 当n = 3 时,有3种跳法; 当n很大时,青蛙在 阅读全文
posted @ 2019-03-28 16:34 鹏鹏进阶 阅读(1100) 评论(0) 推荐(0)
摘要:假设集合A = {1,2,3},它的所有集合是 {{1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}, {}}({}表示空集} 可以这样理解这张图,从集合A的每个元素自身分析,它只有两种状态,或是某个子集的元素,或是不属于任何子集,所以求子集的过程就可以看成对每个 阅读全文
posted @ 2018-12-20 15:34 鹏鹏进阶 阅读(1945) 评论(0) 推荐(0)
摘要:并查集代码 并查集优化⼀ 并查集优化⼆ 实战题⽬目1. https://leetcode.com/problems/number-of-islands/2. https://leetcode.com/problems/friend-circles/ 阅读全文
posted @ 2018-12-18 20:14 鹏鹏进阶 阅读(195) 评论(0) 推荐(0)
摘要:[CareerCup] 2.5 Add Two Numbers 两个数字相加 Suppose the digits are stored in forward order. Repeat the above problem.EXAMPLEInput: (6 -> 1 -> 7) + (2 -> 9 阅读全文
posted @ 2018-11-29 14:25 鹏鹏进阶 阅读(321) 评论(0) 推荐(0)
摘要:package leadcode; /** * 541. Reverse String II * Easy * 199 * 575 * * * Given a string and an integer k, you need to reverse the first k characters for every 2k characters counting from t... 阅读全文
posted @ 2018-11-28 19:12 鹏鹏进阶 阅读(371) 评论(0) 推荐(0)
摘要:557. Reverse Words in a String III 557. Reverse Words in a String III Given a string, you need to reverse the order of characters in each word within 阅读全文
posted @ 2018-11-27 23:50 鹏鹏进阶 阅读(257) 评论(0) 推荐(0)
摘要:627. Swap Salary SQL Schema 627. Swap Salary SQL Schema Given a table salary, such as the one below, that has m=male and f=female values. Swap all f a 阅读全文
posted @ 2018-11-26 14:53 鹏鹏进阶 阅读(194) 评论(0) 推荐(0)
摘要:单链表的特点是:单向。设头结点位head,则最后一个节点的next指向NULL。如果只知道头结点head,请问怎么将该链表排序? 设结点结构为 那么一般人见到这种题目,立马就会想到指针交换。是的,大家被指针交换的题目做多了,形成思维定势了。对于这道题,我们完全可以利用值交换来达到排序的目的。 当然, 阅读全文
posted @ 2018-10-30 17:17 鹏鹏进阶 阅读(809) 评论(0) 推荐(0)
摘要:package StackMin.ReverseList_offer16; public class ReverseKgroup_extend_offer16 { /** * 分组反转单链表,最后不足K个节点的部分也反转 * * @param head * @param k * @return */ publi... 阅读全文
posted @ 2018-10-29 19:28 鹏鹏进阶 阅读(532) 评论(0) 推荐(0)
摘要:输入一个链表,输出该链表中倒数第k个结点。 方法1: 这个解法要循环两次链表 方法2:快慢指针 可以参考单链表成环 https://www.cnblogs.com/chengpeng15/p/9868109.html 阅读全文
posted @ 2018-10-29 14:37 鹏鹏进阶 阅读(188) 评论(0) 推荐(0)
摘要:这是剑指offer15题的扩展 下面是自己实现的一个类似于LinkedList类,其中findMid方法是获取链表的中间节点的实现方法(在未知列表长度的情况下),大致思路如下: 1、首先在方法中定义slow 、 fast两个局部变量。 2、slow每次循环next一次,fast每次循环next两次, 阅读全文
posted @ 2018-10-29 13:29 鹏鹏进阶 阅读(426) 评论(0) 推荐(0)
摘要:如何判断单链表是否存在环 方法一、穷举遍历方法一:首先从头节点开始,依次遍历单链表的每一个节点。每遍历到一个新节点,就从头节点重新遍历新节点之前的所有节点,用新节点ID和此节点之前所有节点ID依次作比较。如果发现新节点之前的所有节点当中存在相同节点ID,则说明该节点被遍历过两次,链表有环;如果之前的 阅读全文
posted @ 2018-10-29 00:22 鹏鹏进阶 阅读(375) 评论(0) 推荐(0)
摘要:首先参考博客 看图理解单链表的反转 https://blog.csdn.net/feliciafay/article/details/6841115(c语言版本,并含有详细图解) 链表翻转的图文讲解(递归与迭代两种实现) 如何把一个单链表进行反转? 方法1:将单链表储存为数组,然后按照数组的索引逆序 阅读全文
posted @ 2018-07-24 15:28 鹏鹏进阶 阅读(275) 评论(0) 推荐(0)
摘要:1、基本思想: 选择排序是一种简单直观的排序算法,其基本原理如下:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录的位置与第一个记录的位置交换;接着对不包括第一个记录以外的其他记录进行第二次比较,得到最小记录并与第二个位置记录交换;重复该过程,知道进行比较的记录只剩下一个为止。 2、 阅读全文
posted @ 2018-07-18 01:49 鹏鹏进阶 阅读(159) 评论(0) 推荐(0)
摘要:速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想 分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一 阅读全文
posted @ 2018-07-17 01:50 鹏鹏进阶 阅读(793) 评论(0) 推荐(0)
摘要:class LNode { int value; LNode next; public LNode(int value, LNode next) { this.value = value; this.next = next; } } public class MergeTowList { public static void main(String[] args) { ... 阅读全文
posted @ 2016-11-20 00:49 鹏鹏进阶 阅读(493) 评论(0) 推荐(0)