![](https://img-blog.csdnimg.cn/20210607105724477.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法学习与练习
文章平均质量分 66
以软件设计师教程为纲,加入工作中常用的算法,以leetcode和实际应用为目的,将算法的学习与使用紧密结合起来。
陆沙
诚以待己,惜物爱人
展开
-
机器学习入门实例-MNIST手写数据集-多分分类&错误分析&多标签分类&多输出分类
所以应该努力减少分类错误的8,比如增加一些看起来像8但实际不是8的实例,或者增加一些特性(比如计算图中的封闭环数目,因为8有2个,6有1个,5没有),或者对图像做一些预处理,让某些特征更明显(比如前面说的封闭环)。比如从图片中去掉噪点的任务:输入一张有噪点的图片,输出一张“干净”的图像,其中包含很多个像素点,每个点的取值范围是0~255。由上面可以看到,decision_function的分数有10个,说明是OvR,分数最高的确实是index=2,也就是“2”类。一张图片里有多个人像,所以要输出一组标签。原创 2023-04-21 15:45:16 · 658 阅读 · 0 评论 -
python3-算法刷题-贪心算法-更新中
解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。输入:flowerbed = [1,0,0,0,1], n = 1。原创 2023-04-20 16:05:17 · 400 阅读 · 0 评论 -
python3-算法刷题-nsum-更新中
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。建立值-索引的字典,每次查找与当前值加和为target的值是否在字典中。既然题目说一定有结果,那直接返回即可。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。输入:nums = [2,7,11,15], target = 9。原创 2023-04-20 09:30:03 · 82 阅读 · 0 评论 -
python3-算法刷题-字符串-更新中
例如,“abc” 是 “aebdc” 的子序列,因为删除 “aebdc” 中斜体加粗的字符可以得到 “abc”。“aebdc” 的子序列还包括 “aebdc” 、 “aeb” 和 “” (空字符串)。如果存在这样的子串,那么将s拼在s的结尾处,再从index=1处查找s,找到的位置一定在第一个s的范围中。解释: 最长特殊序列可为 “aba” (或 “cdc”),两者均为自身的子序列且不是对方的子序列。字符串 s 的子序列是在从 s 中删除任意数量的字符后可以获得的字符串。输入: s = “abab”原创 2023-03-30 09:51:32 · 239 阅读 · 0 评论 -
python3-算法刷题-Counter-更新中
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。输入: s = “anagram”, t = “nagaram”字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。输入:s = “abcd”, t = “abcde”给定两个字符串 s 和 t ,它们只包含小写字母。输入:s = “”, t = “y”解释:‘e’ 是那个被添加的字母。请找出在 t 中被添加的字母。原创 2023-03-20 10:32:38 · 313 阅读 · 0 评论 -
python3-算法刷题-N叉树(更新中)
无原创 2023-03-17 09:39:13 · 116 阅读 · 0 评论 -
python3-算法刷题-数学-经典算法(更新中)
然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。给你一个整数数组 nums ,返回数组中最大数和最小数的 最大公约数。如果n是1或者n在循环中,则需要跳出,否则继续计算各位的平方和。对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。两个数的 最大公约数 是能够被两个数整除的最大正整数。如果这个过程 结果为 1,那么这个数就是快乐数。输入:nums = [2,5,6,9,10]编写一个算法来判断一个数 n 是不是快乐数。2 和 10 的最大公约数是 2。原创 2023-03-16 09:18:03 · 255 阅读 · 0 评论 -
python3-算法刷题-数学-位操作(更新中)
位操作原创 2023-03-09 09:18:26 · 373 阅读 · 0 评论 -
python3-算法刷题-数组-带权重的随机选择算法-更新中
算法原创 2022-11-16 16:45:15 · 234 阅读 · 0 评论 -
python3-算法刷题-数组-滑动窗口-更新中
算法刷题原创 2022-10-31 09:38:06 · 343 阅读 · 0 评论 -
python3-算法刷题-数组-遍历技巧-更新中
数组遍历的技巧总结原创 2022-10-20 11:42:16 · 330 阅读 · 0 评论 -
python3-算法刷题-数组-记录累加和差值-更新中
数组技巧原创 2022-10-19 11:37:53 · 445 阅读 · 0 评论 -
python3-算法刷题-数组-双指针-更新中
双指针练习,主要是数组原创 2022-10-18 10:48:10 · 514 阅读 · 0 评论 -
python3-算法刷题-链表-更新中
链表刷题练习原创 2022-10-16 15:52:55 · 414 阅读 · 0 评论 -
python3-BinaryHeap/二叉堆
BinaryHeap的Python3实现原创 2022-10-16 14:01:58 · 305 阅读 · 0 评论 -
python-数据结构与算法分析-递归法解找零钱
找零钱。这个算递归的一个延展。之后会补到背包问题那边原创 2022-08-02 10:36:37 · 397 阅读 · 0 评论 -
python-数据结构与算法分析-递归
python 递归入门原创 2022-07-21 09:58:08 · 269 阅读 · 0 评论 -
python-数据结构与算法分析-基本数据结构-队列+链表
python3-链表练习原创 2022-07-19 15:15:00 · 120 阅读 · 0 评论 -
python-数据结构与算法分析-基本数据结构-栈
python3-栈的举例原创 2022-07-18 14:50:59 · 180 阅读 · 0 评论 -
python-数据结构与算法分析-基础1
python3数据结构与算法基础梳理原创 2022-07-12 15:51:45 · 251 阅读 · 0 评论 -
PAT-python-1136 A Delayed Palindrome
Sample Input 1:97152Sample Output 1:97152 + 25179 = 122331122331 + 133221 = 255552255552 is a palindromic number.Sample Input 2:196Sample Output 2:196 + 691 = 887887 + 788 = 16751675 + 5761 = 74367436 + 6347 = 1378313783 + 38731 = 5251452514.原创 2022-02-24 16:04:28 · 176 阅读 · 0 评论 -
PAT-python-1031 Hello World for U
Given any string of N (≥5) characters, you are asked to form the characters into the shape of U. For example, helloworld can be printed as:h de ll rlowoInput Specification:Each input file contains one test case. Each case contains one strin原创 2022-02-08 15:37:27 · 309 阅读 · 0 评论 -
PAT-python-1042 Shuffling Machine
Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techniques are seen as weak, and in order to avoid “inside jobs” where employees collaborate with gamblers by performing inadequate shuffles, many casinos employ原创 2022-02-08 15:05:02 · 198 阅读 · 0 评论 -
leetcode-1-basic
leetcode-algorithm1. Two Sum解法:循环,试呗。。简单粗暴。。class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { //vector<int> temp = num...原创 2017-02-23 08:57:00 · 67 阅读 · 0 评论 -
c++-string-1
解答注意:我写的时候考虑了:1) " my"(设置flag,为true时表示上一个是非空格字符)2) "hello John"(最后不是空格结尾,但应该count++)不过还是WA一次,因为第一次是把if(s[i] != ' ')放在了后面,则对这种"a",会判断错误。 1 int countSegments(string s) { 2 ...原创 2017-02-25 13:57:00 · 173 阅读 · 0 评论 -
leetcode-2-basic
解题思路:题目本身挺简单的,考虑用set,判断每个单词的字母是不是属于同一个集合。需要注意的是:1)set的构造方法;2)单词可能是大小写混合的,不一定只是首字母大写;3)break是跳出循环=。=switch写的时候要注意,不好用的话还是用if-else好了。 vector<string> findWords(vector<string>...原创 2017-02-28 14:04:00 · 73 阅读 · 0 评论 -
leetcode-3-basic-divide and conquer
解题思路:因为这个矩阵是有序的,所以从右上角开始查找。这样的话,如果target比matrix[row][col]小,那么就向左查找;如果比它大,就向下查找。如果相等就找到了,如果碰到边界,就说明没有。需要注意的是,1)矩阵按行存储;2)测试用例中有空的情况[],所以在进行查找之前,必须进行判断,否则为col赋初值时会报错。bool searchMatrix(ve...原创 2017-03-03 15:51:00 · 88 阅读 · 0 评论 -
leetcode-4-basic
解题思路:这道题比较简单,代码不贴了。需要注意的是:数字与字符串之间的转换,char str[100];sprintf(str, "%d", num);解题思路:这道题是LeetCode Weekly Contest 22里最简单的那道。。。今天算是试手吧,下周再好好做。我的思路是先对数组排序,然后从头开始找,比较nums[i]+k与nums[...原创 2017-03-05 15:47:00 · 84 阅读 · 0 评论 -
leetcode-5-basic
解题思路:设两个变量land和sink,land的值是1的数量,sink表示内部的边。result = land*4-sink*2。按行扫描得到land,同时得到同一行中内部边的数目;然后按列扫描,得到同一列中内部边的数目。int islandPerimeter(vector<vector<int>>& grid) { ...原创 2017-03-06 14:57:00 · 96 阅读 · 0 评论 -
leetcode-6-basic
解题思路:这道题真实地反映了我今晚有多脑残=。=只需要从根号N开始向前找,第一个能被N整除的数就是width,然后存到结果就可以了。因为离根号N越近,width越大,与length的差越小。vector<int> constructRectangle(int area) { vector<int> result; ...原创 2017-03-06 22:42:00 · 105 阅读 · 0 评论 -
leetcode-7-hashTable
解题思路:这道题需要注意的是s和t长度相等,但都为空的情况。只需要扫描一遍s建立字典(char, count),然后扫描t,如果有未出现的字母,或者键值小于0,就可以返回false了。bool isAnagram(string s, string t) { if (s.length() != t.length()) retu...原创 2017-03-07 11:13:00 · 84 阅读 · 0 评论 -
leetcode-8-pointer
void deleteNode(ListNode* node) { *node = *node->next; }原创 2017-03-07 13:18:00 · 64 阅读 · 0 评论 -
selection problem-divide and conquer
思路:随机选取列表中的一个值v,然后将列表分为小于v的,等于v的,大于v的三组。对于k<=left.size()时,在left中执行selection;落在中间的,返回v;k>left.size()+mid.size()时,在right中执行selection。需要注意rand()函数的使用。#include <iostream>#in...原创 2017-03-07 23:03:00 · 74 阅读 · 0 评论 -
leetcode-9-basic-binary search
278. First Bad VersionYou are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each vers...原创 2017-03-10 12:18:00 · 77 阅读 · 0 评论 -
leetcode-10-basic-Search Insert Position
35. Search Insert PositionGiven a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.You may ass...原创 2017-03-10 22:17:00 · 89 阅读 · 0 评论 -
leetcode-11-dfs
DFS算法:explore(G, v)visited(v) = trueprevisit(v)for each edge(v, u) in E: if not visited(u): explore(u)postvisit(v)dfs(G)for all v in V: visited(v) = falsefor all v...原创 2017-03-11 10:13:00 · 96 阅读 · 0 评论 -
数据挖掘导论-2
exploratory data analysis (EDA)is an approach to analyzing data sets to summarize their main characteristics, often with visual methods.In this book, we focus on:1) summary statistics2) v...原创 2017-03-11 13:31:00 · 114 阅读 · 0 评论 -
leetcode-12-stack
409. Longest PalindromeGiven a string which consists of lowercase or uppercase letters, find the length of the longest palindromes that can be built with those letters.This is case sensiti...原创 2017-03-14 11:09:00 · 83 阅读 · 0 评论 -
leetcode-13-basic-binaryTree
101. Symmetric Tree解题思路:递归的方法如下。分几种情况考虑,如果左子树和右子树都是空,那么返回true;如果不同时为空,返回false;如果都不为空,则判断其值是否相等,不相等为false,相等再判断左子树的左子树与右子树的右子树,左子树的右子树与右子树的左子树。bool isSymmetric(TreeNode* root) { ...原创 2017-03-16 15:29:00 · 92 阅读 · 0 评论 -
leetcode-14-basic-breadthFirstSearch
BFS: breadth first search107. Binary Tree Level Order Traversal II解题思路:本来我是用map<int,int>存所有节点的值和深度(root是0),然后遍历map,result[depth].push_back(val)。但是因为map是无序的,所以插入的时候,result[i]里...原创 2017-03-19 16:34:00 · 84 阅读 · 0 评论