随笔分类 - 数据结构学习
学习笔记,并非精品
摘要:假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。 你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设总是存在一个答案。 示例 1: 输入: ["Shogun", "Tap
阅读全文
摘要:给定两个整型数组,编写一个函数来计算它们的交集。 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4] 说明: 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。 解法1: 使用hash 时间复杂度: O(m+n),其中 n 和 m 是数组
阅读全文
摘要:package cn.learn.datastructor.leetcode; import java.util.Iterator; import java.util.LinkedList; public class MyHashMap { // 数量可以是动态的,此时需要rehash了 int s
阅读全文
摘要:1 import java.util.ArrayDeque; 2 import java.util.Queue; 3 4 public class StackByQueue { 5 private Queue<Integer> inQueue; 6 private Queue<Integer> ou
阅读全文
摘要:leetcode上的题目 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-subsequence 给定一个字符串s,找到其中最长的回文子序列。可以假设s的最大长度为1000。 示例 1:输入:"bbbab"
阅读全文
摘要:C版本 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 6 void perfix_table(char pattern[], int prefix[], int n) 7 { 8 prefix[0] = 0;
阅读全文
摘要:恢复内容开始 参考自 http://blog.jobbole.com/111731/ <!--5f39ae17-8c62-4a45-bc43-b32064c9388a:W3siYmxvY2tJZCI6Ijk0NDYtMTUyOTQ2ODE4NDc2MCIsImJsb2NrVHlwZSI6Imxpc3
阅读全文
摘要:栈是一种线性表,仅限在一端进行插入和删除操作,特点是先进后出。 由于栈是一种线性结构,首先可以想到用数组来实现,但由于数组初始化后容量就已经确定,如果不添加扩容操作,则会出现栈溢出,同时扩容操作也会降低一些效率;如果事先九分配较大空间则可能造成资源浪费。一种解决方法是同一个数组实现两个栈,让两个栈向
阅读全文
摘要:排序算法是数据结构中的经典算法知识点,也是笔试面试中经常考察的问题,平常学的不扎实笔试时候容易出洋相,回来恶补,尤其是碰到递归很可能被问到怎么用非递归实现。。。 内部排序: 插入排序:直接插入排序 选择排序:直接选择排序 交换排序:冒泡排序,改进的冒泡排序;快速排序,非递归实现快速排序 //堆排序:
阅读全文
摘要:最近做笔试题有这么一个关于二分查找的例子。 给一个有序数组,和一个查找目标,用二分查找找出目标所在index,如果不存在,则返回-1-(其应该出现的位置),比如在0,6,9,15,18中找15,返回3;找10.则返回-4(-1-3) 实现如下:
阅读全文

浙公网安备 33010602011771号