- 博客(90)
- 收藏
- 关注
原创 三波混频下的相位失配原理
在四波混频情况下,实现零相位失配是一件很困难的事情。因为在四波混频中,相位调制和增益都依赖于相同的参数,即克尔非线性。这个问题可以用嵌入在传输线上的辅助共振元件的复杂色散工程来部分解决。但是在三波混频中,相位调制效应和信号增益由两种不同的非线性项控制,即。图 1 系数β(红色曲线)和γ(蓝色曲线)作为SQUID参数。,所以通过调整外部磁通量偏差,可以简单的实现相位匹配。的函数 ,细虚线表示最优通量偏置。的两个值的应用磁通量。
2023-06-03 19:40:23
858
原创 孤子理论学习(一)
∂t2∂2−v02∂x2∂2fxt01.1其中,v0是表示波速的常数。由于这个方程可以形式地分解为∂t∂−v0∂x∂∂t∂v0∂x∂fxt0让我们考虑一种更简单的情形∂t∂v0∂x∂fxt01.2方程(1.2)的解是方程(1.1)的右行波解fxtfx−v0t假设这个波是周期的,则有最基本的平面波解fxt。
2023-06-03 19:39:42
724
原创 和相等的子数组
给你一个下标从 0 开始的整数数组 nums ,判断是否存在 两个 长度为 2 的子数组且它们的 和 相等。注意,这两个子数组起始位置的下标必须 不相同。如果这样的子数组存在,请返回 true,否则返回 false。子数组是一个数组中一段连续非空的元素组成的序列。
2023-03-26 09:19:14
130
原创 混频器知识点整理
混频是利用两个信号在时域上的相乘来实现的。假设两个正弦型信号输入到一个乘法器中,则在乘法器的输出可以得到一个和频成分和一个差频成分,在数学上可以表示为:(Acosω1t)(Bcosω2t)=2AB[cos(ω1ω2)t+cos(ω1ω2)]在LO信号幅度一定的情况下,差频成分与和频成分的幅度都正比于输入信号的幅度。
2023-03-20 20:00:00
7965
原创 数据分析:我国各省家庭消费分析
根据 2010 年到 2014 年的数据,不考虑行业的差异,对每个省份所有行业的平均工资水平求平均值,得出综合平均工资水平,以此来对不同省份的经济产业发展水平进行划分。省份综合平均工资水平越高则说明该省份的综合经济发展水平越好,该省份具备极高的发展前景。
2023-03-19 09:32:55
645
原创 非线性规划——有约束优化问题的解析解法
已知目标函数f(x)=-1/2x1^2+1/3x2,约束条件为x1^2+1/3初始点为x0=[3;2],求f(x)的最小值,计算精度ε=10^(-2)
2023-03-19 08:41:53
524
原创 平方数之和
题目概述:给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。方法及代码:数学法:class Solution {public: bool judgeSquareSum(int c) { for(int b=2;b*b<c;b++){ if(c%b!=0){ continue; } int exp=0; while(c%b==0){ c=c/b;
2021-04-28 13:40:33
145
原创 在D天内送达包裹的能力
题目概述:传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。返回能在 D 天内将传送带上的所有包裹送达的船的最低运载能力。题目分析:将题目简化分析以后的大致意思为:给出一个数组,对数组里的元素分类,要求不改变数组里的顺序且组数不得超过给与的天数。每一种分类方法都会有一个每组求和的最大值,返回所有分类方法中和最大值的最小值。代码如下:clas
2021-04-26 14:57:41
143
原创 递增顺序搜索树
题目概述:给你一棵二叉搜索树,请你 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。代码如下:** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr),
2021-04-25 16:03:19
45
原创 组合总和
题目简述:给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。题目数据保证答案符合 32 位整数范围。题目分析:target必然由可以由小于等于它的任何数通过相加得出。所以只要求出对于任意i满足i<=target,求和可得i的排列可能数,并将基于这些数求出当结果等于target时的所有排列组合即可。具体操作为动态规划。代码如下:class Solution {public: int c
2021-04-24 20:25:47
96
原创 二叉搜索树节点最小距离
题目:给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。题目分析:利用二叉搜索树的有序性通过中序遍历法将其实现。代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(
2021-04-13 13:58:43
58
原创 寻找旋转排序数组中的最小值Ⅱ
问题概述:已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,4,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,4]若旋转 7 次,则可以得到 [0,1,4,4,5,6,7]注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[n-2]] 。给你一个可能存在 重复 元素值的
2021-04-09 12:43:27
44
原创 银行家问题
银行家算法(1)设置数据结构:可利用资源向量Available,最大需求矩阵Max,分配矩阵Allocation,需求矩阵Need,上述三个矩阵间存在下述关系:Need[i,j]=Max[i,j]-Allocation[i,j](2)设计主体算法:设Requesti是进程Pi的请求向量,当Pi发出资源请求后,系统按下述步骤进行检查:(a)如果Requesti[j]≤Need[i,j],便转向步骤(b);否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。(b)如果Requesti[j]≤Av
2021-04-07 17:34:53
530
原创 哲学家进餐问题
算法设计原理:(a)系统生成五位哲学家以及五根筷子chopsticks[5],每根筷子都是临界资源,所以我们用五个信号量semaphore来描述这五根筷子。(b)为了确保始终有哲学家能够吃上饭,我规定奇数号哲学家先拿他左边的筷子,然后再去拿他右边的筷子;而偶数号哲学家则要先去拿他右边的筷子,再去那他左边的筷子。伪代码:semaphore chopsticks[5]={1,1,1,1,1};while(TRUE){for (int i=0;i<5;i++){…//think…if((
2021-04-07 17:33:11
254
原创 生产者——消费者问题
算法设计原理:(a) 系统生成多个生产者和多个消费者,但只有一个缓冲池,定义一个object量mylock作为临界变量以控制生产者与消费者工作的时机。(b) Producer:通过lock函数锁住临界变量mylock来实现阻塞队列同时实现对于任务队列的修改,然后再释放出一个信号量给Consumer函数接收。©Consumer:首先要等待Producer释放的信号量,接收到信号量以后,再用lock函数锁住临界变量mylock阻塞队列同时实现对于任务队列的修改,但是这里的Consumer不需要释放信号量,
2021-04-07 17:31:21
145
原创 读者写者问题
算法设计原理:(a)为了实现读者和写者的进程互斥设置了两个互斥信号量rmutex、wmutex,再设置两个整型变量Rcount,Wcount,分别记录正在占用临界资源变量的读者和写者数量,同时又设置互斥信号量RCMutex和WCMutex,实现对于Rcount和Wcount操作的阻塞。(b)规则:读者之间不互斥,只要有一个读者在读,那么写者就不能进去写,反之,只要有一个写者在写,那么读者就不能进去读。因此,仅当Rcount或者Wcount=1时,表示进程就会执行wait(wmutex)或者wait(rm
2021-04-07 17:29:18
270
原创 森林中的兔子
题目介绍:森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。返回森林中兔子的最少数量。题目分析:因为要返回兔子的最少数量,所以回答相同数量的必然是同一种颜色,回答不同数量的不然是不同颜色。则某种颜色的兔子数量=该颜色的兔子报出的数字+1,兔子的最少数量为所有颜色的兔子数量相加。但是不排除单个兔子没有其他相同颜色即报“0”,还有一种情况就是多种不同颜色的集合数量相同,对于后面这种情况需要添加判断条件。为此我引入了
2021-04-04 10:38:15
60
原创 直方图的水量
题目描述:给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1。题目分析:每一个单位所能存储的水量决定于最矮的那一边,所以先分别获取两边最高的柱子的高度,取小值再减去该单位的高度就是该单位的储水量。代码如下:class Solution {public: int trap(vector<int>& height) { int n=height.size(); vector<int> left
2021-04-02 11:39:14
112
原创 子集Ⅱ
问题描述:给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。返回的解集中,子集可以按任意顺序 排列。问题分析:运用深度优先搜索,从0号位开始依次遍历数组中的元素,先进行排序将相同元素放在一起,一旦发现与前面的数不一样的数就将它加入数组,增长数组长度进入下一层次,等下一层运行完以后去掉动态数组最后的数,将该位置的元素用下一个与前一位不相同的元素替代,进行回溯。代码如下:class Solution {public: vecto
2021-03-31 20:40:53
53
原创 搜索二维矩阵
问题描述:编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。问题分析:参照于一般的在一维矩阵中找寻目标值的算法,最简单的可以通过直接搜索来实现,也可以通过二分法来实现,这道题只需要主意多维矩阵的下标的换算即可。代码如下:直接法:class Solution {public: bool searchMatrix(vector<vector<int>>&
2021-03-30 19:05:26
189
原创 颠倒二进制位
颠倒二进制位问题概述:问题分析:代码如下运行结果:问题概述:颠倒给定的 32 位无符号整数的二进制位。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。进阶:如果多次调用这个函数,
2021-03-29 17:06:01
71
原创 每个元音包含偶数次的最长字符串
题目分析:暴力法代码如下:class Solution { public int findTheLongestSubstring(String s) { int []a = new int [s.length()+1]; int []e = new int [s.length()+1]; int []i = new int [s.length()+1]; int []o = new int [s.length()+1];
2020-05-20 21:15:49
163
原创 验证回文字符串Ⅱ
题目分析:双指针法,一个从头部开始记为left,一个从尾部开始记为right,如果string[left]=string[right],则left=left+1,right=right-1,同时确保只能够删除一次。代码如下:class Solution {public: bool validPalindrome(string s) { int left= 0; int right= s.size() - 1; while (left<
2020-05-19 10:16:12
88
原创 乘积最大子数组
题目分析:通过挨个计算出所有子数组的乘积,通过比较得出最大值,同时记录下第一个元素的位置,以及求到的子数组的长度,并输出最终的子数组结果。代码如下:class Solution {public: int maxProduct(vector<int>& nums) { int max1=nums[0]; int lm=nums.size(); for(int i=0;i<lm;i++){ int res=nums[i];
2020-05-18 15:10:24
135
原创 课程表Ⅱ
题目分析:基本思路和课程表Ⅰ差不多,就是输出的结果有所改变。我设置了一个动态数组res,用于实时记录下度为0的元素,最后根据n判断时候可行即可。代码如下:class Solution {public: vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) { int n=numCourses; vector<int
2020-05-14 14:14:57
100
原创 运输问题c++
算法描述:1.按照要求输入二维数组c以及行向量a与b,c表示运价,a表示产量,b表示销量2.先求出总销量与总产量,再通过两者对比判断是否为产销平衡的问题。如果不是,那就将其转化成产销平衡的问题。3.用最小值法求出初始解,通过不断比较产量和销量的值,选取最小量的归零,并记录下初始基解的位置,如果产量和销量相等的话就会出现退化的情况,在该基解的同一行内寻找一个最小值作为额外基变量即可。4.位势...
2020-05-06 17:29:13
1100
2
原创 二叉树的层序遍历
题目分析:运用DFS,通过调用递归函数helper实现代码运算。定义一个levels为空集。当前最高层数就是列表的长度 len(levels)。比较访问节点所在的层次 level 和当前最高层次 len(levels) 的大小,如果前者更大就向 levels 添加一个空列表。将当前节点的内容插入到对应层的列表 levels[level] 中。如果遇到子节点非空就更新当前节点,并进入下一层...
2020-05-06 14:14:09
80
原创 二叉树的最近公共祖先
题目分析首先,排除到只有一个点或者没有点的情况。然后,从根节点开始搜索。如果当前节点本身是 p 或 q 中的一个,我们会将变量 mid 标记为 true,并继续搜索左右分支中的另一个节点。如果左分支或右分支中的任何一个返回 true,则表示在下面找到了两个节点中的一个。代码如下:class Solution {public: TreeNode* lowestCommonAnces...
2020-04-29 14:04:19
93
原创 搜索插入位置
题目分析一一遍历即可代码如下:class Solution {public: int searchInsert(vector<int>& nums, int target) { int i=0; int res=0; int l1=nums.size(); while(i>=0&&am...
2020-04-17 12:55:40
58
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人