算法
两个幽灵
这个作者很懒,什么都没留下…
展开
-
leetcode 刷题视频(10) - 高级数据结构
高级数据结构基础知识 trie树又叫字典树、前缀树(图中的红圈表示字符串结尾)最为高效的字符串查找算法。// 26 个字母#define TRIE_MAX_CHAR_NUM 26struct TrieNode { TrieNode *child[TRIE_MAX_CHAR_NUM]; bool is_end; TrieNode() : is_end(false) { for (auto &i : child) { i转载 2020-10-25 22:38:39 · 192 阅读 · 0 评论 -
leetcode刷题视频(9) - 动态规划
动态规划动态规划是最常考察题型。问题1 爬楼梯You are climbing a stair case. It takes n steps to reach to the top.Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?Example 1:Input: 2Output: 2Explanation: There are two ways to转载 2020-10-24 22:14:29 · 274 阅读 · 0 评论 -
leetcode 刷题视频(8) - 搜索
搜索本节介绍深度优先搜索和宽度优先搜索。问题1 岛屿数量Given an m x n 2d grid map of '1's (land) and '0's (water), return the number of islands.An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges o转载 2020-10-24 22:09:59 · 950 阅读 · 0 评论 -
leetcode 刷题视频(7) - 哈希表与字符串
哈希表与字符串预备知识拉链法解决冲突,构造哈希表。#include <iostream>using namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(nullptr) {}};int hash_func(int key, int table_len) { return key % table_len; }void insert(L转载 2020-10-18 15:55:03 · 209 阅读 · 1 评论 -
leetcode 刷题视频(6) - 二分搜索和二叉查找树
二分搜索和二叉查找树二叉查找树又叫二叉排序树预备知识 二分查找折半查找。假设元素升序排列递归形式#include <vector>using namespace std;bool binary_search(vector<int> &sort_array, int begin, int end, int target) { if (begin > end) { return false; } int mid = (b转载 2020-10-18 15:51:16 · 257 阅读 · 0 评论 -
leetcode 刷题视频(5) - 二叉树与图
二叉树与图问题1 路径之和2Given a binary tree and a sum, find all root-to-leaf paths where each path’s sum equals the given sum.Note: A leaf is a node with no children.Example:Given the below binary tree and sum = 22, 5 / \ 4 8 / / \ 11 1转载 2020-10-09 22:18:53 · 190 阅读 · 0 评论 -
leetcode 刷题视频(4) - 回溯、递归和分治
递归、回溯和分治问题1 求子集1-a 求子集Given a set of distinct integers, nums, return all possible subsets (the power set).Note: The solution set must not contain duplicate subsets.Example:Input: nums = [1,2,3]Output:[ [3], [1], [2], [1,2,3], [1,3], [2,转载 2020-10-07 20:28:22 · 154 阅读 · 0 评论 -
leetcode 刷题视频(3) - 贪心法
贪心法预备知识同一个目标值,使用较大面额的纸币能检测纸币的使用。面额为1元、5元、10元、20元、100元、200元,任意面额是比自己小的面额的倍数。所以当使用一张较大面额的钞票时,若用较小面额钞票替换,一定需要更多其它面额的钞票。思考:如果增加7元面额,贪心还成立吗?不成立,因为14=10+1+1+1+1, 14=7+7更好问题1 分糖果Assume you are an awesome parent and want to give your children some cookies.转载 2020-10-07 20:25:18 · 298 阅读 · 1 评论 -
leetcode 刷题视频(2) - 栈、队列和堆
栈、队列和堆问题1 使用队列实现栈Implement the following operations of a stack using queues.push(x) – Push element x onto stack.pop() – Removes the element on top of the stack.top() – Get the top element.empty() – Return whether the stack is empty.Example:MyStac转载 2020-10-05 20:23:21 · 287 阅读 · 0 评论 -
leetcode 刷题视频(1) - 链表
链表问题1 链表逆序1-a 基本问题Reverse a singly linked list.Example:Input: 1->2->3->4->5->NULLOutput: 5->4->3->2->1->NULL来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。c转载 2020-10-05 12:02:04 · 289 阅读 · 0 评论 -
无重复字符的最长子串 - [中等难度算法]
Given a string, find the length of the longest substring without repeating characters.Example 1:Input: "abcabcbb"Output: 3Explanation: The answer is "abc", with the length of 3.Example 2:Input: ...原创 2019-09-14 20:50:30 · 163 阅读 · 0 评论 -
回溯法 图着色问题
前文#include <iostream>#include <memory.h>#define COLOR_COUNT 3bool graph[100][100]; // 点的编号从1开始int colors[100] = { 0 }; // 每个点已经选择的颜色, 默认0int point_count;// 对c节点及其子节点尝试每一种着色方案void ...原创 2018-06-04 20:51:49 · 2219 阅读 · 2 评论 -
二分查找总结
参考链接: https://www.cnblogs.com/luoxn28/p/5767571.html查找第一个相等元素: key <= 中间 往左走 返回 left查找最后一个相等元素: key<中间 往左走 返回 right查找最后一个≤关键字的元素: key<中间 往左走 返回 right查找最后一个<关键字的元素: key<=中间 往左走 返回 right查...原创 2018-07-01 11:43:22 · 146 阅读 · 0 评论 -
假的北航机试题: 回文数字 纯C语言实现
题目来自: https://blog.csdn.net/shijie97/article/details/809671971024 Palindromic Number (25)(25 分)A number that will be the same when it is written forwards or backwards is known as a Palindromic Number....原创 2018-07-10 21:48:42 · 213 阅读 · 0 评论 -
南大机试题
第三题思路: https://blog.csdn.net/qq_34374664/article/details/52230368https://blog.csdn.net/qq_34374664/article/details/52230368原创 2018-07-11 20:52:06 · 3036 阅读 · 1 评论 -
扩展欧几里得算法
原创 2018-09-07 21:09:57 · 125 阅读 · 0 评论 -
944. Delete Columns to Make Sorted [简单算法]
We are given an array A of N lowercase letter strings, all of the same length.Now, we may choose any set of deletion indices, and for each string, we delete all the characters in those indices.For...原创 2019-09-01 14:32:43 · 121 阅读 · 0 评论 -
查找第k大的数 [中等难度算法]
第一种方法是利用快速排序。快速排序的基本步骤是:找到轴,然后分别对左边和右边的数进行快速排序。轴的特性是:在轴左边的数都比轴小,在轴右边的数都比轴大。如果轴的恰好在k位置,那么轴就是第k大的数。// 输入数组a[l..r](含边界),返回第k大的数。int QuickSort(int arr[], int l, int r, int k) { if (l >= r...原创 2019-09-10 19:50:58 · 466 阅读 · 0 评论 -
查找逆序数对的数量[中等难度算法]
[问题一]统计满足这样条件的数对(ai,aj)(a_i, a_j)(ai,aj)的个数:[1] i<ji < ji<j; [2] ai>aja_i > a_jai>aj。我们把这样的数对叫做颠倒的数对。要解决这个问题首先要了解归并排序。归并排序将无序的数组不断拆分成小数组,让小数组先排好序,然后再把排好序的小数组合并成...原创 2019-09-10 21:46:29 · 572 阅读 · 0 评论 -
【简单算法】窗口模拟点击
这是本人重新开始使用Visual C++ 6.0写出的第一个程序【题意】在计算机屏幕上,有 N 个窗口。窗口的边界上的点也属于该窗口。窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。当你用鼠标点击某个点的时候,若其在窗口内,你就选择了处于被点击位置所属的最顶层窗口,并且这个窗口就会被移到所有窗口的顶层,而剩余的窗口的层次顺序不变,如果你点击的位置不属于任何窗口计算...原创 2018-05-15 20:56:31 · 2756 阅读 · 0 评论