算法
阿翔同学
这不是通往幼儿园的车车
展开
-
广度遍历题目
/*问题1给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。岛屿: 相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。例如:[1,1,0,0,0],[0,1,0,1,1],[0,0,0,1,1],[0,0,0,0,0],[0,0,1,1,1]对应的输出为3*/struct pos_t { int row, col; pos_t(int r, int c):row(r), col(c){}};int solv.原创 2022-04-17 09:19:07 · 692 阅读 · 0 评论 -
链表类题目
/*问题1* 将链表的后半截逆序,然后跟前半截交叉生成新的链表。* 要求: Time: O(N), Space: O(1),不允许递归如:1->2->3->4->5 ==>1->5->2->4->3*/void reserve(ListNode* &head) { if (!head) return; // 1->2->3->4->5 // 1 2 3 4 null // s .原创 2022-04-17 09:18:38 · 304 阅读 · 0 评论 -
二分类题目
/*问题1leetcode 33. 搜索旋转排序数组*/int search(vector<int>& nums, int target) { int len = nums.size(); if (len == 0) return -1; int left = 0, right = len - 1; int mid = 0;// 分割 // 将数组一分为二,其中一定有一个是有序的,另一个可能是有序,也能是部分有序。此时有序部分用二分法查找。无序部分再一分为二,其中一..原创 2022-04-17 09:18:09 · 330 阅读 · 0 评论 -
动态规划类题目
/*问题 1 背包问题 (需要花费的时间,幸福感)比如 成都(1天, 10) 上海(3天, 20) 重庆(2天, 40) 武汉(4天, 50) 深圳(3天, 30) 北京 (3天, 20) 6个城市问:如果你只有 n天的时间 怎么才能让幸福感最大*/struct city { string name; int cost; int weal; city() :name(""), cost(0), weal(0) {}; city(cons.原创 2022-04-17 09:17:37 · 762 阅读 · 0 评论 -
无法分类题目
/*问题 1给定一个数组nums,编写一个函数将所有О移动到数组的末尾,同时保持非零元素的相对顺序输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]*/void moveZeroes(vector<int>& nums) { int len = nums.size(); if (len == 0 || len == 1) return; int i = 0, j = 0; for (; j < len; .原创 2022-04-17 09:17:21 · 181 阅读 · 0 评论 -
回溯类题目
/*问题 1输入:s = "3[a]2[bc]"输出:"aaabcbc"*/void reserve(string& s) { int len = s.size(); int i = 0, j = len - 1; while (i < j) { swap(s[i++], s[j--]); }}string decodeString(string s) { int len = s.size(); if (len ..原创 2022-04-17 09:16:35 · 646 阅读 · 0 评论 -
贪心类题目
/*问题1输出最短路径的题目:/a/b/.././*/vector<string> split_by_char(const string& str, char ch) { vector<string> ret; int index = -1; int i = 0; while (true) { index = str.find_first_of(ch, i); if (index == string::npos) {// 找不到 break; .原创 2022-04-17 09:16:13 · 180 阅读 · 0 评论 -
二叉搜索树
#include "Btree.h"#include "stack.h"#include <stack>/*********************函数定义区**************************//****************************************************插入成功 返回 true, 插入失败 返回 false****************************************************/.原创 2022-04-15 09:35:42 · 148 阅读 · 0 评论 -
LFU页面置换
#pragma onceextern "C" {#include "double_queue.h"}#include <unordered_map>#define MAX_BLOCK 4struct map_val { int num; // 访问数量 double_queue_node* node;};class LfuCache {public: LfuCache(int max = MAX_BLOCK) { max_blocks = max;.原创 2022-04-09 16:46:50 · 267 阅读 · 0 评论 -
LRU页面置换
#pragma once#include "double_queue.h"#include <unordered_map>#define MAX_BLOCK 3class LruCache {public: LruCache(int block = MAX_BLOCK) { this->max_block = block; mem_queue = create_double_queue(); } ~LruCache() { this->m.原创 2022-04-09 16:46:02 · 423 阅读 · 0 评论 -
最长重复子串
#include <iostream>#include <string>using namespace std;/*给一个字符串、例如 “ababc”要求返回“ab”. 因为“ab”连续重复出现且最长。 用C/C++语言写一函数完成该算法,给出复杂度*/string find(const string& str) { string ret; int len = str.size(); if (len <= 1) return str; i.原创 2022-04-09 16:36:45 · 718 阅读 · 0 评论 -
算法-滑动窗口
#include <iostream>#include <string>using namespace std;// 题目描述 在 一个字符串中 找到子串,子串可以无序// 如 absdfgk 中 存在 fds // 使用滑动窗口bool is_exist(const string& str, const string& sub) { int i = 0; int j = 0; int map[256] = { 0 }; int s.原创 2022-04-09 16:03:36 · 254 阅读 · 0 评论