首页 > TAG信息列表 > 公共

封装、继承、多态

封装:就是把类中的方法或者属性用private声明,封装到一起。属性的调用和赋值通过get和set方法;方法的调用可以在类创建一个公共方法,通过公共方法来调用类中的私有方法,之后通过对象调用公共方法来间接调用私有方法。 好处:隐藏对象和属性的实现细节,仅对外公开接口,数据更加安全。 继承:把

LCA(最近公共祖先)

lca,即最近公共祖先。最近公共祖先,顾名思义,就是树上两个点最近的祖先。 我们大体上有三个算法来搞。 第一个:\(O(nlogn)\)预处理,\(O(1)\)查询。 大体上是借用了rmq问题的思路(就是区间最大/小值)来处理。 将树上问题转化为区间问题。 void dfs(int rt,int d){ v[rt]=true;num[++t]=rt

公共基础

数据结构 算法 解题方案的准确而完整的描述 基本特征 可行性:能解决问题 确定性:每个步骤必须是明确定义的,不许模棱两可,也不许有多义性 有穷性:算法必须在有限时间内做完,在执行有限个步骤后终止 拥有足够的情报:要有一定的输入数据,必须 有输出结果 基本要素 对数据对象的运算和操作:算

公共操作 -- 运算符

1、运算符     s1 = 'asd' s2 = 'hgf' list1 = [1, 2] list2 = [3, 4] t1 = (4, 5) t2 = (6, 7) dict1 = {11: 22} dict2 = {44: 55} # 结果:asdhgf print(s1 + s2) # 结果:[1, 2, 3, 4] print(list1 + list2) # 结果:(4, 5, 6, 7) print(t1 + t2) # 结果:报错(不

最佳彩色带

https://www.acwing.com/problem/content/1531/ 思路: 最长公共子序列模型,唯一不同的一点是:他一个i可以选择多个j。 P:2 3 1 5 6 S:2 2 4 1 5 5 6 3 1 1 5 6 f[i][j]: 状态表示: 集合:在p[1,i]中出现且在s[1,j]中出现的公共子序列的集合 属性:长度的最大值 状态计算: 分类: (1)公

最低公共祖先

https://www.acwing.com/problem/content/description/1638/ 思路: LCA(爬山法)+重建一个树(知道其两个排序),由于时间n可能比较大,而且这题时间限制比较紧张,所以最后离散化,尽量查询不用哈希,因为哈希的常数太大了。 #include <iostream> #include <cstring> #include <unordered_map> #

mysql术语通解

数据库---文件夹 表---文件 字段---表头     索引---目录 约束---限制 键---序号 内连接---向右关联两张表的公共区 外连接---向右关联两张表的公共区+独有区 左外连接---左表为依据关联右表的数据,包含公共区+右表独有区 联合---向下关连两张表 事务---在写有多个sql语句时在m

最长公共子序列

前缀型动态规划 def longest_common_seq(s1, s2): if not s1 or not s2: return m, n = len(s1), len(s2) # dp[i][j] = max(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]),当前字符依赖于i-1和j-1,需要补一个状态零 dp = [[0]*(n+1) for _ in range(m+1)]

最长公共前缀

14. 最长公共前缀 难度简单2380 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。   示例 1: 输入:strs = ["flower","flow","flight"] 输出:"fl" 示例 2: 输入:strs = ["dog","racecar","car"] 输出:"&qu

最近公共祖先学习笔记

概念 在一棵有根树上,指定点集的最近公共祖先(即 LCA ),就是这些节点的祖先集合的并集中离根最远的点 实现 暴力 先对树进行一次深搜,预处理出每个节点的父亲与深度 对于每一次查询,我们先让深度较大的点向上跳,直到两点深度相同为止 接下来让这两个点一起向上跳,直到这两点相遇为止,此时该

最长公共前后缀

P2957 数据小直接暴力 遍历字串长度(从大到小),如果满足条件直接输出长度 substr函数使用 #include <bits/stdc++.h> using namespace std; #define MAX 100001 string a, b; int main() { cin >> a; cin >> b; if (a.length() < b.length()) { swap(a, b)

LCA在线算法(树状倍增)

  对于一棵树里的任意两个节点,若他们的深度相同,显然他们到最近公共祖先的距离是相同的,我 们可以利用这个性质来求最近公共祖先。   对于两个深度相同的节点,若此时父亲节点是同一个点,那么最近公共祖先就是父亲节点,如果不 是的话我们就让他们向上跳到自己的父亲节点,再判断他们的

Vuex 公共状态管理持久化处理

为什么需要持久化处理? 如果不做初始化,刷新页面,vuex中代码重新执行,数据就会丢失。(把数据存储到本地) 持久化处理方法 1、安装 vuex-persistedstate 插件 传送门:https://juejin.cn/post/6918684399659646989 传送门:https://juejin.cn/post/7006890304217284638 2、手动持久化处理

最长公共前缀

最长公共前缀 一、题目描述 编写一个函数来查找字符串组中的最长公共前缀。 如果不存在公共前缀则返回“”; 实例: 输入:Strs = ["flower","flow","flight"] 输出:"fl" 输入:strs = ["dog","racecar","car"] 输出:"" 二、题目分析 首先排除掉可能出现的特殊情况,如当字符串组为空的

公共部分

common模块 api  package com.macro.mall.common.api; import com.github.pagehelper.PageInfo; import org.springframework.data.domain.Page; import java.util.List; /** * 分页数据封装类 * Created by macro on 2019/4/19. */ public class CommonPage<T> { /**

LCA最近公共祖先

最近公共祖先就字面意思,两个节点一起往上跳,找到的最近的公共点 找到u和v第一个不同祖先不同的位置,然后这个位置向上走一步就是最近公共的祖先 但是想找到u,v第一个不同祖先的位置,就要保证u,v在同一深度(才能一起往上移动) 所以这个过程分为三部分,   1. 预处理找到每个节点深度  

最长公共子序列

c++ 最长公共子序列 /* 最长公共子序列 问题描述: 给定两个长度分别为 N 和 M 的字符串 A 和 B,求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。 输入格式 第一行包含两个整数 N 和 M。 第二行包含一个长度为 N 的字符串,表示字符串 A。

236. 二叉树的最近公共祖先_

目录236. 二叉树的最近公共祖先思路:代码:总结: 236. 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个

二叉树的最近公共祖先

      https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/solution/236-er-cha-shu-de-zui-jin-gong-gong-zu-xian-hou-xu/     /** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode *

1143. 最长公共子序列(动态规划)

1143. 最长公共子序列 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后

测试人员对编程天生“恐惧”么?

  软件测试人员掌握一门或者多门编程语言是必不可少的,许多测试人员对编程天生“恐惧”,其实编程并不是你想象中那样触不可及。 许多测试人员为了提升,抱着一本书“死啃”,效果肯定是有,但不是最高效的,我并不推荐。在平时繁忙的工作中,抽出大量的时间来学习,不大现实,有时候会因为紧张的

main()方法不一定只能放在公共类中

原以为main函数必须放在public类里面才行,因为将public挪到Item类处后就可以运行了;后来通过查阅资料发现,想调用main方法跟这个类是不是public的并没有关系。之所以前面报错是因为eclipse默认到public的类(本例中是Item)中去找main函数,一旦在该类中找不到就会出错。通过修改run Config

C#如何取出非公共成员

https://blog.csdn.net/yueguangzhiyuan/article/details/8926131   一般而言,非公共成员是受保护的,不能被外部访问的,这些都是基于安全性考虑。可是有时,我们很想取到非公共成员的某个对象。那我们就得用到两个方法:GetType().GetField();GetType().GetProperty();GetField()用来获取字段,Get

[AcWing 272] 最长公共上升子序列

点击查看代码 #include<iostream> using namespace std; const int N = 3010; int n; int a[N], b[N]; int f[N][N]; int main() { cin >> n; for (int i = 1; i <= n; i ++) cin >> a[i]; for (int i = 1; i <= n; i ++) cin >> b[i]; for (

C#/.NET CTS和CLS:公共类型系统和公共语言规范

网址引用:http://c.biancheng.net/view/3053.html .NET 框架最主要的两个组成部分是 CLR 和框架类库,而 CLR 最主要的两个组成部分是 CTS(公共类型系统)和 CLS(公共语言规范)。简单地说,CTS 就是计算机语言的一种语法和规范。例如,它允许接口、类、结构、枚举这些类型的存在,并且,规定了每种