自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 寄存器操作通常包括按位与(AND)、按位或(OR)、左移(shift left)等操作的详细解释和示例。

操作符对其取反,结果是所有位都是1,只有第5位是0(二进制:111011111)。使用按位与操作“&=”将第5位置0,其它位保持不变。左移操作用于将寄存器中的位左移特定数量的位,右边填0。会生成一个只有第5位为1,其它位为0的数值(二进制:000100000)。只有在两个操作数的对应位都是1时,结果位才为1,否则为0。只要两个操作数的对应位中有一个是1,结果位就为1。会将1左移5位,结果是二进制的000100000(即十进制的32)。假设我们要配置GPIOA的第5位为输出模式,并设置该位。

2024-05-29 14:20:04 307

原创 练习三:条件语句实现计数分频时序电路

一个可综合风格的分频器,可将10MHz的时钟分频为500kHz的时钟。

2022-12-03 22:08:13 427 1

原创 练习二:简单分频时序逻辑电路设计

一个 1/2分频器的可综合模型

2022-12-03 21:41:27 668

原创 练习一:简单的组合逻辑设计

可综合的数据比较器

2022-12-03 19:48:12 219

原创 Leetcode刷题题解2.1.1

distance()函数用于计算两个迭代器表示的范围内包含元素的个数unique函数的功能是元素去重。即“删除”序列中所有相邻的重复元素(只保留一个)

2022-07-04 20:15:35 148 1

原创 Leetcode刷题---217

题目:给定一个整数数组nums。如果任一值在数组中出现至少两次,返回true;如果数组中每个元素互不相同,返回false。输入:nums = [1,2,3,1]输出:true方法一:排序class Solution {public: bool containsDuplicate(vector<int>& nums) { sort(nums.begin(), nums.end()); int n = n...

2022-05-25 10:33:31 45

原创 Leetcode刷题---1385

题目:给你两个整数数组arr1 ,arr2和一个整数d,请你返回两个数组之间的距离值。[距离值] 定义为符合此距离要求的元素数目:对于元素arr1[i],不存在任何元素arr2[j]满足 |arr1[i] - arr2[j]<= d 。输入:arr1 = [4,5,8], arr2 = [10,9,1,8], d = 2输出:2方向一:模拟class Solution {public: int findTheDistanceValue(vect...

2022-05-25 09:55:32 58

原创 Leetcode刷题---367

题目:给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。输入:num = 16输出:true方法一:内置的库函数class Solution {public: bool isPerfectSquare(int num) { int x = (int) sqrt(num); return x * x == num; }};方法二:暴力class Sol.

2022-05-25 09:37:48 59

原创 Leetcode刷题---44

题目:给定一个字符串(s) 和一个字符模式(p) ,实现一个支持'?'和'*'的通配符匹配。'?' 可以匹配任何单个字符。 '*' 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s可能为空,且只包含从a-z的小写字母。 p可能为空,且只包含从a-z的小写字母,以及字符?和*。输入:s = "aa" ,p = "a"输出:false方法一:动态规划class Solution {public: ...

2022-05-24 19:43:21 60

原创 Leetcode刷题---10

题目:给定一个字符串s和一个字符规律p,实现一个支持 '.'和'*'的正则表达式匹配。'.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。输入:s = "aa", p = "a"输出:false方法一:正则表达式匹配class Solution {public: bool isMatch(string s, string p) { int m = s.size();...

2022-05-24 16:59:49 55

原创 Leetcode刷题---189

题目:给你一个数组,将数组中的元素向右轮转k个位置,其中k是非负数。输入:nums = [1,2,3,4,5,6,7], k = 3输出:[5,6,7,1,2,3,4]方法一:使用额外的数组class Solution {public: void rotate(vector<int>& nums, int k) { int n = nums.size(); vector<int> newArr(...

2022-05-24 14:45:22 827

原创 Leetcode刷题---278

题目:你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用bool isBadVersion(version)接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。输入:n = 5,...

2022-05-24 14:12:02 68

原创 Leetcode刷题---977

题目:给定一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]方法一:直接排序class Solution {public: vector<int> sortedSquares(vector<int>& nums) { vector<int> ans; f...

2022-05-24 14:00:58 49

原创 Leetcode刷题---852

题目:符合下列属性的数组 arr 称为 山脉数组 :arr.length >= 3 存在 i(0 < i< arr.length - 1)使得: arr[0] < arr[1] < ... arr[i-1] < arr[i] arr[i] > arr[i+1] > ... > arr[arr.length - 1]给你由整数组成的山脉数组 arr ,返回任何满足 arr[0] < arr[1] < ... arr[i - 1...

2022-05-24 11:20:13 98

原创 Leetcode刷题---35

题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。必须使用时间复杂度为 O(log n) 的算法。输入:nums = [1,3,5,6], target = 5输出:2方法一:二分查找class Solution {public: int searchInsert(vector<int>& nums, int target) { int n = nums.s.

2022-05-24 11:07:35 54

原创 Leetcode刷题---1

题目:给定一个整数数组 nums和一个整数目标值 target,在该数组中找出和为目标值 target的那两个整数,并返回它们的数组下标。可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。可以按任意顺序返回答案。输入:nums = [2,7,11,15], target = 9输出:[0,1]方法一:哈希表class Solution {public: vector<int> twoSum(vector<int&g...

2022-05-23 19:20:35 64

原创 Leetcode刷题---374

题目:猜数字游戏的规则如下:每轮游戏,我都会从1到n 随机选择一个数字。 请你猜选出的是哪个数字。如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了。你可以通过调用一个预先定义好的接口 int guess(int num) 来获取猜测结果,返回值一共有 3 种可能的情况(-1,1或 0):-1:我选出的数字比你猜的数字小 pick < num1:我选出的数字比你猜的数字大 pick > num0:我选出的数字和你猜的数字一样。恭...

2022-05-23 15:09:47 57

原创 Leetcode刷题---704

题目:给定一个n个元素有序的(升序)整型数组nums 和一个目标值target ,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。输入:nums= [-1,0,3,5,9,12], target = 9输出:4方法一:二分查找class Solution {public: int search(vector<int>& nums, int target) { int low = 0, ...

2022-05-23 14:57:47 52

原创 Leetcode刷题---832

题目:给定一个n x n的二进制矩阵image,先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转[1,1,0]的结果是[0,1,1]。反转图片的意思是图片中的0全部被1替换,1全部被0替换。例如,反转[0,1,1]的结果是[1,0,0]。输入:image = [[1,1,0],[1,0,1],[0,0,0]]输出:[[1,0,0],[0,1,0],[1,1,1]]方法一:模拟优化+双指针...

2022-05-23 10:30:41 745

原创 Leetcode刷题---202

题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。输入:s = ["h","e","l","l","o"]输出:["o","l","l","e","h"]方法二:双指针class Solution {public: void reverseString(vector<char>& s) { int .

2022-05-23 10:22:59 756

原创 Leetcode刷题---75

题目:给定一个包含红色、白色和蓝色、共n 个元素的数组nums,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。必须在不使用库的sort函数的情况下解决这个问题。输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]方法一:单指针class Solution {public: void sortColors(vector<int>& n...

2022-05-23 10:12:49 88

原创 Leetcode刷题---283

题目:给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。请注意,必须在不复制数组的情况下原地对数组进行操作。输入:nums = [0,1,0,3,12]输出:[1, 3, 12, 0, 0]方法一:双指针class Solution {public: void moveZeroes(vector<int>& nums) { int n = nums.size(), left = 0, right.

2022-05-23 09:28:18 69

原创 Leetcode刷题---263

题目:丑数就是只包含质因数2、3和5的正整数。给你一个整数n,请你判断n是否为丑数。如果是,返回true;否则,返回false。输入:n = 6输出:true方法一:数学class Solution {public: bool isUgly(int n) { if (n <=0 ) { return false; } vector<int> fac...

2022-05-23 09:16:16 45

原创 Leetcode刷题---136

题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次,找出那个只出现一次的元素。输入:[2,2,1]输出:1方法一:位运算class Solution {public: int singleNumber(vector<int>& nums) { int ret = 0; for (auto e:nums) ret ^= e; return ret; }};复杂度.

2022-05-23 01:26:40 841

原创 Leetcode刷题---118

题目:给定一个非负整数numRows,生成[杨辉三角]的前numRows行输入:numRows = 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]方法一:数学class Solution {public: vector<vector<int>> generate(int numRows) { vector<vector<int>> ret(numRows); .

2022-05-23 01:19:25 60

原创 Leetcode刷题---67

题目:给定两个二进制字符串,返回它们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。输入:a = "11", b = "1"输出:"100"方法一:模拟class Solution {public: string addBinary(string a, string b) { string ans; reverse(a.begin(), a.end()); reverse(b.begin(), b.end.

2022-05-22 13:21:02 126

原创 Leetcode刷题---21

题目:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]方法一:递归class Solution {public: ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) { if (list1 == nullptr) { return l.

2022-05-22 12:33:21 85

原创 Leetcode刷题---2

题目:给两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储,并且每个节点只能存储一位数字。将两个数相加,并以相同形式返回一个表示和的链表。可以假设除了数字 0 之外,这两个数都不会以 0开头。输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]方法一:模拟/** * Definition for singly-linked list. * struct ListNode { * int val; * L...

2022-05-22 11:04:02 88

原创 Leetcode刷题---79

题目:输入是一个二维字符数组和一个字符串,输出是一个布尔值,表示字符串是否可以被寻找 到。输入:word = "ABCCED", board = [[’A’,’B’,’C’,’E’], [’S’,’F’,’C’,’S’],[’A’,’D’,’E’,’E’]]输出:...

2022-05-21 21:06:53 51

原创 Python下载GPM卫星数据

import osimport requestsclass SessionHeaderRedirection(requests.Session): AUTH_HOST = 'urs.earthdata.nasa.gov' def __init__(self, username, password): super().__init__() self.auth = (username, password) def rebuild_auth.

2022-05-21 15:12:52 693 3

原创 Leetcode刷题---77

题目:给定一个整数 n 和一个整数 k,求在 1 到 n 中选取 k 个数字的所有组合方法输入:n = 4, k = 2输出:[[2,4], [3,4], [2,3], [1,2], [1,3], [1,4]]方法一:递归实现组合型枚举class Solution {public: vector<int> temp; vector<vector<int>> ans; void dfs(int cur, int n, .

2022-05-21 15:03:34 42

原创 Leetcode刷题---46

题目:输入是一个一维整数数组,输出是一个二维数组,表示输入数组的所有排列方式。输入:[1,2,3]输出:[[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]方法一:回溯一class Solution {public: vector<vector<int>> permute(vector<int>& nums) { vector<vector&lt..

2022-05-20 21:57:33 105

原创 Leetcode刷题---547

题目:给定一个二维的 0-1 矩阵,如果第 (i, j) 位置是 1,则表示第 i 个人和第 j 个人是朋友。已知 朋友关系是可以传递的,即如果 a 是 b 的朋友,b 是 c 的朋友,那么 a 和 c 也是朋友,换言之这 三个人处于同一个朋友圈之内。求一共有多少个朋友圈。输入:[[1,1,0], [1,1,0], [0,0,1]]输出:2方法一:深度优先搜索class Solution {public: int findCircleNum(vector<vec.

2022-05-19 20:41:15 302

原创 Leetcode刷题---695

算法解释:深度优先搜索和广度优先搜索是两种最常见的优先搜索方法,它们被广泛地运用在图和树等结构中进行搜索。题目: 给定一个二维的 0-1 矩阵,其中 0 表示海洋,1 表示陆地。单独的或相邻的陆地可以形成岛屿,每个格子只与其上下左右四个格子相邻。求最大的岛屿面积。输入:[[1,0,1,1,0,1,0,1], [1,0,1,1,0,1,1,1], [0,0,0,0,0,0,0,1]]输出: 最大的岛屿面积为 6,位于最右侧。方法一: 深度优先搜索一一般来说,深度优先搜索类型的题可以分为

2022-05-19 19:45:04 117

原创 Leetcode刷题---347

题目: 给定一个数组,求前 k 个最频繁的数字。输入: nums = [1,1,1,1,2,2,3,4], k = 2输出: [1,2]方法一:class Solution {public: static bool cmp(pair<int, int>& m, pair<int, int>& n) { return m.second > n.second; } vector<int> topKFreq

2022-05-19 15:33:21 46

原创 Leetcode刷题---215

题目: 在一个未排序的数组中,找到第 k 大的数字。输入: [3,2,1,5,6,4] and k = 2输出: 5方法一: 快速排序class Solution {public: int quickSelect(vector<int>& a, int l, int r, int index) { int q = randomPartition(a, l, r); if (q == index) { return

2022-05-19 14:17:52 118

原创 Python gdal库读取tif文件

from osgeo import gdal # GDAL库主要提供对栅格数据的处理,使用抽象数据模型来解析所支持的数据格式import filename_cut as fcimport matplotlib.pyplot as pltdef read_tif(filename): dataset = gdal.Open(str(filename)) if dataset == None: print(filename + "无法打开") ret

2022-05-19 13:25:00 2631 1

原创 算法---排序

快速排序void quick_sort(vector<int>& nums, int l, int r) { if (l + 1 >= r) { return; } int first = l, last = r - 1, key = nums[first]; while (first < last) { while (first < last && nums[last] >= key) { --last; } nu

2022-05-19 13:10:20 75

原创 Leetcode刷题---81

题目: 一个原本增序的数组被首尾相连后按某个位置断开(如 [1,2,2,3,4,5] → [2,3,4,5,1,2],在第一位和第二位断开),我们称其为旋转数组。给定一个值,判断这个值是否存在于这个为旋转数组中。输入: nums = [2,5,6,0,0,1,2], target = 0输出: true方法一: 二分查找class Solution {public: bool search(vector<int>& nums, int target) {

2022-05-18 22:25:56 388

原创 Leetcode刷题---34

题目: 给定一个增序的整数数组和一个值,查找该值第一次和最后一次出现的位置。输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]方法一: 二分查找class Solution {public: int binarySearch(vector<int>& nums, int target, bool lower){ int left = 0, right = (int)nums.size() - 1, ans =

2022-05-18 19:22:14 190

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除