数据结构与算法
文章平均质量分 65
数据结构与算法
砖业洋__
掘金/InfoQ签约作者,阿里云/51CTO专家博主,华为云·云享专家,CSDN博客专家,腾讯云·2023年度影响力创作者/优质共创者,擅长MySQL和Java领域,技术分享,全网同名———砖业洋__
展开
-
程序员小灰的漫画算法和知识总结,高品质强推!!!
转载自微信号程序员小灰,不定期更新,漫画讲解好评,特来转载。漫画知识汇总漫画:深度优先遍历 和 广度优先遍历漫画:什么是 “图”?(修订版)漫画:图的 “最短路径” 问题漫画:Dijkstra 算法的优化漫画:图的 “多源” 最短路径漫画:有趣的 “切蛋糕“ 问题漫画:什么是 HTTPS 协议?漫画:什么是ConcurrentHashMap?漫画:高并...转载 2019-02-19 18:01:29 · 7709 阅读 · 0 评论 -
3. Longest Substring Without Repeating Characters(无重复字符的最长子串)
Given a string, find the length of the longest substring without repeating characters.Example 1:Input: "abcabcbb"Output: 3 Explanation: The answer is "abc", with the length of 3. Example 2:...原创 2018-09-13 13:03:16 · 249 阅读 · 0 评论 -
448. Find All Numbers Disappeared in an Array(找到所有数组中消失的数字)
Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once.Find all the elements of [1, n] inclusive that do not appear in this array.Coul...原创 2018-09-13 12:09:27 · 262 阅读 · 0 评论 -
基于堆的优先级队列
java自带的优先级队列默认是小顶堆,现在来写一个大顶堆的自带的优先级队列用法见之前的这篇博客:https://blog.csdn.net/qq_34115899/article/details/79389066堆排序见这里:https://blog.csdn.net/qq_34115899/article/details/81099217目录实现大顶堆的优先级队列:实...原创 2018-09-02 14:10:09 · 468 阅读 · 0 评论 -
198. House Robber(打家劫舍)(求不相邻的位置上的数字之和的最大值)
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent house...原创 2018-09-04 20:47:40 · 322 阅读 · 0 评论 -
基本排序算法总结
以下排序算法模版都会用Comparable接口数据类型,只要实现了Comarable接口的数据类型比如Integer、Double、String和其他许多高级数据类型(如File和URL),这些数据类型的数组可以作为参数调用排序方法。这里的输入不是Scanner cin = new Scanner(System.in),因为读取花费的时间太大,主要时间都在读取上面了,不如直接读入然后在进行转换...原创 2018-07-18 15:37:07 · 2215 阅读 · 0 评论 -
144. Binary Tree Preorder Traversal(二叉树的前序遍历)
题目地址:https://leetcode.com/problems/binary-tree-preorder-traversal/description/Given a binary tree, return the preorder traversal of its nodes' values.Example:Input: [1,null,2,3] 1 \ ...原创 2018-05-24 20:58:12 · 6112 阅读 · 0 评论 -
572. Subtree of Another Tree(另一个树的子树)
题目地址:https://leetcode.com/problems/subtree-of-another-tree/description/Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and node values with a subtree of...原创 2018-05-07 17:06:39 · 7194 阅读 · 0 评论 -
441. Arranging Coins(排列硬币)(可用二分搜索)
题目地址:https://leetcode.com/problems/arranging-coins/description/You have a total of n coins that you want to form in a staircase shape, where every k-th row must have exactly k coins.Given n, find ...原创 2018-05-06 09:54:01 · 7295 阅读 · 0 评论 -
字符串表达式展开(比如abc3[a]就为abcaaa,aa3[bc2[d]]e就为aabcddbcddbcdde)
给出一个表达式s,此表达式包括数字,字母以及方括号,在方括号前面的数字表示方括号里面的内容重复的次数(括号内的内容可以是字符串或另一个表达式),请编写程序将这个表达式展开成一个字符串。输入样例:(每一行输入一个表达式)abc3[a]3[abc]4[ac]dy输出样例:(每一行输出表达式s展开成的字符串)abcaaaabcabcabcacacacacdy提示:样例没有给出嵌套的情况,...原创 2018-05-05 17:27:44 · 8239 阅读 · 0 评论 -
打印不重复的字符串全排列(递归)
本文将详细解析在生成不重复的字符串全排列时使用的Java代码。首先,我们将展示一个常规的全排列生成方法,然后介绍如何通过使用HashSet来跳过已经尝试过的字符,从而避免生成重复的全排列。最后,我们提供了一道相关的编程题目以供练习。原创 2018-03-29 12:40:44 · 8087 阅读 · 0 评论 -
字符串全排列(递归)
题目:打印一个字符串的全部排列 public class test { public static void arrange(char[] str, int i) { if (i == str.length) { Sy...原创 2018-03-28 20:44:02 · 6836 阅读 · 0 评论 -
字符串的全部子序列(递归)
在计算机科学中,子序列和子串的概念非常重要,这两个概念经常在数据处理,文本分析,编程算法等领域被广泛使用。理解子序列和子串的区别以及如何高效地处理它们对于成为一名有效的程序员是非常重要的。原创 2018-03-28 18:49:26 · 19762 阅读 · 1 评论 -
安排会议(区间问题、贪心)
关于区间问题还有我的另一篇博客https://blog.csdn.net/qq_34115899/article/details/79388870题目: 一些项目要占用一个会议室宣讲,会议室不能同时容纳两个项目的宣讲。给你每一个项目开始的时间和结束的时间(给你一个数组,里面是一个个具体的项目),你来安排宣讲的日程,要求会议室进行 的宣讲的场次最多。输出这个最多的宣讲场次。区间问题都是选...原创 2018-03-28 17:49:59 · 7488 阅读 · 0 评论 -
项目获得的最大收益(贪心)
大意是这样:有k个项目,你的本金是W,然后每次只能串行做一个项目,不能并行,输入每个项目需要的资金以及做完后获得的利润,每做完一个项目,马上获得的利润,可以支持你去做下一个项目,求最后获得的最大利润。比如输入:k=4 // 4个项目W=20 // 本金205 7 // 需要的资金和利润10 8100 ...原创 2018-03-28 12:54:55 · 7315 阅读 · 1 评论 -
字符串逆序方法比较
选几种典型的加以说明import java.io.BufferedInputStream;import java.util.Scanner;public class test { // 不返回串 public static void reversePrint(String s, int i) { if (i != s.length()) { ...原创 2018-04-03 12:25:08 · 6846 阅读 · 0 评论 -
切金条(哈夫曼、贪心)
这里用到的是哈夫曼编码原理,关于这个知识点的讲解可以看这位博主的,我觉得写的很好点击打开链接 一块金条切成两半,是需要花费和长度数值一样的铜板的。比如长度为20的金条,不管切成长度多大的两半,都要花费20个铜板。一群人想整分整块金条,怎么分最省铜板?例如,给定数组{10,20,30},代表一共三个人,整块金条长度为10+20+30=60. 金条要分成10,20,30三个部分。如果,先把...原创 2018-03-28 10:50:08 · 6778 阅读 · 0 评论 -
9. Palindrome Number(回文数)
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.Example 1:Input: 121Output: trueExample 2:Input: -121Output: falseExpl...原创 2018-10-01 20:15:11 · 175 阅读 · 0 评论 -
topK问题
给定一个字符串数组,让你找出前k个出现次数最多的字符串比如:输入:31 2 4 5 6 5 8 6 6 9输出:No.1:6, times:3No.2:5, times:2No.3:2, times:1输入:3 abc abc aaa snfh asnfdk aaa kjsda asd 123输出:No.1:abc, times:2No.2:aaa, ti...原创 2018-10-03 12:12:25 · 548 阅读 · 0 评论 -
第一个只出现一次的字符(使用hashmap和使用位图)
题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).题目链接:https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c?tpId=13&tqId=11187&tPage=2&...原创 2019-01-29 12:29:13 · 519 阅读 · 0 评论 -
最小的K个数(手写大顶堆和用优先级队列比较)
题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。题目链接:https://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf?tpId=13&tqId=11182&tPage=2&rp=2&ru=/ta/codin...原创 2018-12-30 17:48:05 · 1601 阅读 · 0 评论 -
复杂链表的复制
题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)题目链接:https://www.nowcoder.com/practice/f836b2c43afc4b35ad6adc41ec941dba?tpId=13&t...原创 2018-12-18 21:05:17 · 253 阅读 · 0 评论 -
数组中出现次数超过一半的数字
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。题目链接:https://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163?tpId=13&tqI...原创 2018-12-27 16:35:47 · 241 阅读 · 0 评论 -
判断是否为二叉搜索树的后序遍历序列
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。题目链接:https://www.nowcoder.com/practice/a861533d45854474ac791d90e447bafd?tpId=13&tqId=11176&tPage=2&rp=2&ru=/t...原创 2018-12-16 21:09:53 · 670 阅读 · 0 评论 -
树的子结构
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)题目链接:https://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88?tpId=13&tqId=11170&tPage=1&rp=1&ru=%2Fta%2Fcoding-interviews&...原创 2018-12-10 15:50:18 · 182 阅读 · 0 评论 -
二叉搜索树转化成双向链表
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。题目链接:https://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5?tpId=13&tqId=11179&tPage=2&rp=2&ru=/ta/coding-i...原创 2018-12-19 15:17:24 · 241 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面,且奇数之间、偶数之间的相对位置不变
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。题目地址:https://www.nowcoder.com/practice/beb5aa231adc45b2a5dcc5b62c93f593?tpId=13&tqId=11166&tPage=1&rp=...原创 2018-12-07 16:38:52 · 2891 阅读 · 0 评论 -
android简易智能容错计算器
看了一些网上的代码,感觉多少有点问题,有的不能计算浮点数,有的不能计算多位数,或者没办法保证乘除法在加减法的前面,或者不能与负数进行混合运算。我实现的如下:特点是:在按“=”之前智能预算结果显示,点击按钮,按钮颜色变化思路是:将输入的中缀表达式转换成后缀表达式进行计算难点是:带负数的四则混合运算,以及智能预算显示(这一部分容易出问题)当然最后要记得负0的处理还是为0,除以0提示...原创 2018-11-04 19:05:01 · 5071 阅读 · 16 评论 -
141. Linked List Cycle(环形链表,判断链表中是否有环存在)
Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space? 给定一个链表,判断链表中是否有环。进阶:你能否不使用额外空间解决此题? ===================================更进一步...原创 2018-10-21 12:33:36 · 469 阅读 · 0 评论 -
142. Linked List Cycle II(环形链表2,找到环的入口点并且推理验证)
Given a linked list, return the node where the cycle begins. If there is no cycle, return null.Note: Do not modify the linked list.Follow up:Can you solve it without using extra space?给定一个链表,返回...原创 2018-10-21 13:57:24 · 796 阅读 · 0 评论 -
哈希表中线性探测再散列法及等概率条件下平均查找长度试题分析
题目来源:2010-408_计算机学科专业基础综合链接:https://www.nowcoder.com/questionTerminal/717e56c82bdf4b40aa73902c66b599b4将关键字序列(7 . 8 . 30 . 11 . 18 . 9 . 14)散列存储到散列表中,散列表的存储空间是一个下标从0开始的一维数组 。 散列函数 是: H(key)=(key x3)...转载 2018-10-09 14:30:34 · 2863 阅读 · 0 评论 -
在图中,从某顶点到另一顶点长度为n的路径有多少条?(矩阵乘法的应用)
先来分析一下数学问题:先构造一个图: 0 1 0 1 2 1 2 1矩阵 A = 1 0 1 1 矩阵A^2 = 1 3 1 2 0 1 0 1 2 1 2 1...原创 2018-10-09 11:17:44 · 3428 阅读 · 1 评论 -
翻转字符串
比如字符串“dog loves pig”,翻转成“pig loves dog”“how are you”翻转成“you are how”思路是把字符串整体逆序,然后找到每个单词,再把每个单词的字符逆序一遍可是现在的面试要求就是不能用String,不能用库函数给定你的就是字符数组char[] c = new char[] {'h', 'o', 'w', ' ', 'a', 'r', ...原创 2018-09-30 11:33:25 · 231 阅读 · 0 评论 -
清雨的自助餐(斐波那契数列的应用)
爱奇艺 2019校招 Android方向试卷在线考试编程题|20.0分2/2清雨的自助餐时间限制:C/C++语言 1000MS;其他语言 3000MS内存限制:C/C++语言 131072KB;其他语言 655360KB题目描述:清雨又在吃自助餐了。排在清雨面前的有N种食物,排成一排,清雨可以选择其中的若干种食物,但是不能连续选择相邻的食物。因为清雨很挑食,当所有食物都不合...原创 2018-09-28 20:43:11 · 354 阅读 · 0 评论 -
2. Add Two Numbers(链表尾插法)
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return i...原创 2018-09-22 21:20:07 · 463 阅读 · 0 评论 -
顺时针打印矩阵
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.题目链接:https://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa...原创 2018-10-04 11:48:31 · 461 阅读 · 0 评论 -
判断串是否为回环变位串
题目:如果字符串s中的字符循环移动任意位置之后能够得到另一个字符串t,那么s就被称为t的回环变位。例如,ACTGACG就是TGACGAC的一个回环变位,反之亦然。判定这个条件在基因组序列的研究中是很重要的。编写一个程序检查两个给定的字符串s和t是否为回环变位。上代码:import java.io.BufferedInputStream;import java.util.Scanner;pub...原创 2018-04-03 11:04:40 · 6871 阅读 · 0 评论 -
L2-023. 图着色问题
关于图的搜索问题可以看我的另一篇博客二分图的判定点击打开链接L2-023. 图着色问题时间限制300 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越图着色问题是一个著名的NP完全问题。给定无向图 G = (V, E),问可否用K种颜色为V中的每一个顶点分配一种颜色,使得不会有两个相邻顶点具有同一种颜色?但本题并不是要你解决这个着色问题,而是对给定的一种颜色分配...原创 2018-03-26 20:29:59 · 6722 阅读 · 1 评论 -
食物链(并查集)
Description动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是"1 X Y",表示X和Y是同类。 第二种说法是"2 X Y",表示X吃Y。 此人对N个动物,用上述两种说法,一句接一句...原创 2018-02-27 16:50:31 · 6499 阅读 · 0 评论 -
19+199+1999+……+1999…9(1999个9)和是多少?
#include <iostream>#include <cstdlib>using namespace std;int num[1000001];//19+199+1999+……+1999…9(1999个9)和是多少?int main(){ int n, t = 2, temp = 0, jin = 0, j = 0, hou = 0; cin >&...原创 2018-02-27 16:00:21 · 6968 阅读 · 0 评论