数据结构与算法分析
文章平均质量分 55
数据结构与算法分析
ZZZXXE
夫难平者,事也。昔先帝败军于楚,当此时,曹操拊手,谓天下已定。然后先帝东连吴越,西取巴蜀,举兵北征,夏侯授首,此操之失计,而汉事将成也。然后吴更违盟,关羽毁败,秭归蹉跌,曹丕称帝。凡事如是,难可逆见。臣鞠躬尽瘁,死而后已。至于成败利钝,非臣之明所能逆睹也。
展开
-
百度 2021.04.11 笔试 字符串S转化为T的方案
参考牛客大佬:大佬1 大佬2思路——动态规划首先将字符串S=xyS=xyS=xy变换为yxyxyx,等价于将字符串SSS循环右移或左移(读者可以自己举例子尝试一下)那么,只要TTT是SSS的循环同构串,当S!=TS != TS!=T时,SSS只要经过111次操作即可变换为TTT;当S==TS == TS==T时,SSS经过000次操作即可变换为TTT现在,称字符串循环左移(j+n)%n(j+n)\%n(j+n)%n个位置得到的新字符串称为字符串jjj定义dp[i][j]dp[i][j]dp[i.原创 2021-04-20 11:56:11 · 1630 阅读 · 0 评论 -
网易互娱2021.4.18笔试
1.乒乓球比赛直接枚举即可。#include "bits/stdc++.h"using namespace std;int a[10];int b[10];int main() { int T; cin >> T; while (T--) { for (int i = 1; i <= 6; ++i) cin >> a[i]; for (int i = 1; i <= 6; ++i) cin >> b[i]; int s原创 2021-04-18 18:26:27 · 409 阅读 · 2 评论 -
洛谷P1023 税收与补贴问题
#ifdef __GNUC__#include <bits/stdc++.h>#else#include "bits/stdc++.h"#pragma warning(disable:4996)#endif // __GNUC__using namespace std;int hope;int sub;int cost;const int N = 100000;i...原创 2019-02-12 12:54:36 · 228 阅读 · 0 评论 -
[动态规划]砸金蛋
Python代码class Solution: def maxCoins(self, nums): nums = [1] + nums + [1] length = len(nums) dp = [[0] * length for _ in range(length)] for c in range(2, length): for j in range(length - c): ..原创 2020-09-11 20:39:03 · 381 阅读 · 0 评论 -
[动态规划]跳台阶问题
for _ in range(int(input())): n, k = map(int, input().split()) d = [[0] * (k + 1) for _ in range(n + 1)] d[0][0] = 1 d[1][0] = 1 d[2][0] = 2 for i in range(3, n + 1): for j in range(k + 1): if k == 0: ..原创 2020-09-11 19:40:08 · 242 阅读 · 1 评论 -
二叉树权值最大异或和
class Node: def __init__(self, w, l, r): self.w = w self.l = l self.r = rn = int(input())a = [0] * (n + 1)v = [0] * (n + 1)for _ in range(n): i, w, l, r = map(int, input().split()) v[l] = v[r] = 1 a[i] = Nod...原创 2020-09-09 21:38:49 · 570 阅读 · 11 评论 -
奇数阶魔方算法
规律魔方阵是指由1,2,3……n2填充的,每一行、每一列、对角线之和均相等的方阵,阶数n = 3,4,5…。魔方阵也称为幻方阵。奇魔方(阶数n = 2 * m + 1,m =1,2,3……)规律如下:数字1位于方阵中的第一行中间一列;数字a(1 < a ≤ n2)所在行数比a-1行数少1,若a-1的行数为1,则a的行数为n;数字a(1 < a ≤ n2)所在列数比a-1列...原创 2019-03-10 17:45:26 · 379 阅读 · 0 评论 -
带头结点的链表逆置
#include <stdio.h>#define PRINT_FUNC printf("Call function: %s\n", __func__);typedef struct Node{ int data; struct Node *next;}Node, *NodePtr;void input_node(Node *head){ PRINT...原创 2019-02-24 11:28:30 · 413 阅读 · 0 评论 -
求最大子序列和
#include <stdio.h>#define N 105int a[N];int d[N];int n;int left[N];int max_sum(){ int maxi = 0; d[0] = a[0]; left[0] = 0; for(int i = 1; i < n; ++i) { left[...原创 2019-02-24 10:42:27 · 158 阅读 · 0 评论 -
冒泡排序
从小到大(升序)为例从前冒到后void pop_sort(int a[], int n){ for (int i = n - 1; i > 0; --i) for (int j = 0; j < i; ++j) { if (a[j] > a[j + 1]) swap(a[j], ...原创 2019-02-17 18:51:21 · 131 阅读 · 0 评论 -
[数据结构]二叉树:由二叉树前序和中序序列创建二叉树
Node* create(const T pre[], int l1, int r1, const T in[], int l2, int r2){ if (l1 &amp;amp;amp;amp;amp;gt; r1 || l2 &amp;amp;amp;amp;amp;gt; r2) return nullptr; Node *node = new Node{ pre[l1] }; int pos; for (pos =原创 2018-11-15 20:12:31 · 306 阅读 · 0 评论