自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(339)
  • 资源 (1)
  • 收藏
  • 关注

原创 合集:编程相关的网站及书籍

大学计算机专业(计算机原理及编程语言(JAVA/C/C++/C#/python)和算法相关)https://study.163.com/curricula/cs.htmJava:Java入门 网易云课堂Java进阶 网易云课堂C语言:程序设计入门——C语言(中国大学MOOC)C语言程序设计进阶 (中国大学MOOC)C++:C++语言程序设计基...

2018-08-22 21:08:14 529 2

原创 每日自动发邮件(Python +QQ邮箱 + Windows 10定时任务)

参考:Python-100-Days/14.网络编程入门和网络应用开发.md at master · jackfrued/Python-100-Days · GitHub什么是授权码,它又是如何设置?_QQ邮箱帮助中心windows中怎么添加定时任务 - 秋寻草 - 博客园 (cnblogs.com)一、申请授权码登陆qq邮箱,设置,账户,(往下找)POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,开启服务:POP3/SMTP服务 。手机验

2021-07-10 12:20:09 121

原创 7.处理多维特征的输入

多维输入逻辑斯蒂回归多层网络import torchimport torch.nn.functional as Fimport numpy as npimport matplotlib.pyplot as plt# 1.准备数据,从csv文件读取xy = np.loadtxt('diabetes.csv.gz', delimiter=',', dtype=np.float32)x_data = torch.from_numpy(xy[:,:-1])y_da...

2021-06-29 12:36:12 28

原创 6.逻辑斯蒂模型

import torchimport torch.nn.functional as Fimport numpy as npimport matplotlib.pyplot as plt# 1.准备数据,注意都是矩阵形式x_data = torch.Tensor([[1.0], [2.0], [3.0]])y_data = torch.Tensor([[0], [0], [1]])# 2.设计模型(类) 继承nn.Module 以便使用其方法class LogisticRegr...

2021-06-10 17:11:41 57

原创 5、使用PyTorch 实现线性回归

使用PyTorch 实现线性回归(4步):1、构建数据集2、设计模型(使用类)3、构造损失函数(loss)和优化器(optimizer)4、训练周期(前馈、反馈、更新)1、准备数据#1.准备数据,注意都是矩阵形式x_data = torch.Tensor([[1.0], [2.0], [3.0]])y_data = torch.Tensor([[2.0], [4.0], [6.0]])2、设计模型2.设计模...

2021-06-02 16:45:40 38

原创 四、反向传播 back propagation

四、反向传播 back propagation教程来自《PyTorch深度学习实践》完结合集_哔哩哔哩_bilibili一、原理1.1 计算图在简单的线性模型中,我们可以通过数学推导求出梯度公式。在复杂网络中,因为太复杂,无法直接数学计算梯度公式。考虑将这样的复杂网络看成是图,我们在图上传播梯度,最后根据链式求导求出梯度(反向传播)。计算图(一个简单的二层神经网络)由于可以线性展开,这样就等于一个网络,中间计算的权重就没有意义。所以我们要加上一个...

2021-06-02 16:36:30 38

原创 27.移除元素

有了昨天26的经验,很容易想到用双指针法,处理这种即需要遍历原数组,又需要将元素写到数组中的问题。 public int removeElement(int[] nums, int val) { int n = nums.length; if (n == 0) { return 0; } int fast = 0; int slow = 0; while (fast &...

2021-04-27 10:56:49 16

原创 26.删除有序数组中的重复项

26.删除有序数组中的重复项要求原地删除,不能有额外数组。双指针法: public int removeDuplicates(int[] nums) { int n = nums.length; if (n == 0) { return 0; } int fast = 1; int slow = 1; while (fast<n) { i

2021-04-26 17:05:08 21

原创 25. K个一组翻转链表

25. K个一组翻转链表遇到困难直接看题解 --_--,每k个一组,进行翻转,然后再装回原链表中。class Solution { public ListNode reverseKGroup(ListNode head, int k) { ListNode hair = new ListNode(0); //头结点 hair.next = head; ListNode pre = hair; while (he...

2021-04-25 20:21:37 14

原创 《PyTorch深度学习实践》--3梯度下降算法

一、.在第二节中的线性模型中,求解w的最优值(使得MSE最小的w)问题。从图中可以看出:w=2时,MSE最小。(即最优)二、求解最优w问题的方法2.1梯度下降(Gradient Descent)算法:w按梯度下降方向移动,这样一定次数的移动后就会移动到最优解。(a为学习因子,影响每次移动的步长,越小越精确但时间复杂度也会变高)通过求导,可以求出具体的表达式,根据表达式就可以写出代码。x_data = [1.0, 2.0, 3.0]y_data = [2.0, 4.

2021-04-24 21:18:47 354 1

原创 24. 两两交换链表中的节点

24.两两交换链表中的节点需要实际交换节点,而不是交换节点中的值。1.递归 :问题可以分解为:当前两个结点进行交换+剩余结点进行交换可以使用递归方法。 public ListNode swapPairs(ListNode head) { //终止条件 if (head == null || head.next == null) { return head; } ListNode newHead =

2021-04-24 10:25:05 12

原创 23.合并K个升序链表

1.每次合并两个,合并K次。public ListNode mergeKLists(ListNode[] lists) { ListNode ans = null; for (int i = 0; i < lists.length; ++i) { ans = mergeTwoLists(ans, lists[i]); } return ans; } public ListNode merge

2021-04-23 09:55:42 17

原创 《PyTorch深度学习实践》--2线性模型

对于以上一组数据x,y,为了预测接下来的x对应的y,我们选择一个模型。这里选择线性(Linear Model)模型为了简化,下面的例子去掉了b.为了评价模型,引入MSEimport numpy as npimport matplotlib.pyplot as pltx_data = [1.0, 2.0, 3.0]y_data = [2.0, 4.0, 6.0]def forward(x): return x * wdef loss(x,y): ...

2021-04-22 12:03:49 41

原创 22.括号生成

22.括号生成比较容易想到暴力解法,生成所有的括号然后检验是否有效。 public List<String> generateParenthesis(int n) { List<String> combinations = new ArrayList<String>(); generateAll(new char[2 * n], 0, combinations); return combinations;

2021-04-22 10:15:33 16

原创 21. 合并两个有序链表

将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。需要注意的是空节点的处理。1.暴力 public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode dummy = new ListNode(-1); ListNode prev = dummy; while (l1 != null && l2 != null) {...

2021-04-21 15:07:49 38

原创 20. 有效的括号

栈的应用 public boolean isValid(String s) { Stack<Character> stack = new Stack<>(); for ( int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c == '(' || c == '[' || c == '{') {

2021-04-20 15:08:57 19

原创 19.删除链表的倒数第N个结点

单链表。 主要任务是找到倒数第N个结点。一、很容易想到是先遍历一次,得到链表总长度allCount,allCount - N 就是要删除结点的前置结点。为了简单,可以添加一个头结点dummy。 public ListNode removeNthFromEnd(ListNode head, int n) { ListNode dummy = new ListNode(0, head); //添加头节点 int countAll = 0; .

2021-04-19 09:32:33 23

原创 18.四数之和

四数之和,类似三数之和排序后,双层循环+ 双指针 ,中间进行一些剪枝操作。时间复杂度O(n^3). public List<List<Integer>> fourSum(int[] nums, int target) { List<List<Integer>> results = new ArrayList<List<Integer>>(); //异常处理 if.

2021-04-18 22:32:01 14

原创 17. 电话号码的字母组合

17. 电话号码的字母组合给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。所有组合--> 搜索-->深度优先。问题可以分解为当前问题+子问题。例如:问题“234” 可以分解成: 2对应的3种可能a + ans("34"),b+ans("34),c+ans("34“) public List<String> letterCombinations(String digits) { List<S...

2021-04-17 22:01:20 23

原创 16. 最接近的三数之和

找到三数之和与target最接近,返回这三个数的和。假设答案唯一。分析:与15.三数之和类似https://pigeon.blog.csdn.net/article/details/115711407,同样采用 排序+双指针 方法。 public int threeSumClosest(int[] nums, int target) { int ans = nums[0]+nums[1]+nums[2]; int closest = Math.abs( a

2021-04-16 16:09:32 14

原创 15.三数之和

在整数数组nums中,找3个元素(a+b+c)和为0的三元组。方法1:暴力解法:三重循环 O(N^3) //超时方法2:排序+双指针法 先排序避免重复答案,降低复杂度变为twoSum,利用双指针找到所有解。这里说的双指针法:a确定时,b+c 的值就确定为-a。 也就是随着b增加,c减少。那么b,c一共移动的次数是O(N) public List<List<Integer>> threeSum(int[] nums) { int n = ..

2021-04-14 22:54:21 20

原创 14. 最长公共前缀

查找字符串数组中的最长公共前缀。纵向扫描: public String longestCommonPrefix(String[] strs) { if (strs == null || strs.length==0) return ""; String result = ""; int minLength = strs[0].length(); for (String st : strs ){

2021-04-12 19:48:05 16

原创 13.罗马数字转整数

13.罗马数字转整数通过硬编码的方式,将13个罗马数字和整数进行映射。值得注意的细节:s.substring的(i,i+2) 包含s[i]和s[i+1] ,不包含s[i+2]。 public int romanToInt(String s) { int[] store = {1000,900,500,400,100,90,50,40,10,9,5,4,1}; String[] strs = {"M", "CM", "D", "CD", "C", "X.

2021-04-11 14:03:00 15

原创 12.整数转罗马数字

罗马数字一共有7种字符,加上特殊规则的6种,一种有13种。(罗马数字(共13种))在转换时,应该用尽可能大的符号。如900 应该用CM,而不是DCD。据此定义(尽可能大)可以使用贪心算法。public String intToRoman(int num) { StringBuilder sb = new StringBuilder(); int[] store = {1000,900,500,400,100,90,50,40,10,9,5,4,1};

2021-04-11 12:39:46 17

原创 11.盛最多水的容器

11.盛最多水的容器寻找盛水面积最大的两条线,盛水面积 = 两条线的距离 * 两条线中较短的那条的高1.暴力 (超时)两层循环计算所有可能的面积,时间复杂度O(n^2),超时2.双指针法:思路是从左右两端开始移动,每次移动较短的那条。因为面积 = 距离 * min(左高度,右高度)。移动时距离减少,只有min(左高度,右高度)增加才可能让面积变大,而min()是由较小的数决定的,所以只有较小的数改变,min()才会改变。从而面积才可能更大。证明略。时...

2021-04-10 22:46:47 27

原创 10.正则表达式匹配

正则表达式匹配

2021-04-09 23:07:00 33

原创 9.回文数

判断一个整数是否回文。1.用字符串反转 public boolean isPalindrome(int x) { if (x<0) return false; StringBuilder sb = new StringBuilder(String.valueOf(x)).reverse(); if (sb.toString().equals(String.valueOf(x))) .

2021-04-08 10:38:23 12

原创 8. 字符串转换整数 (atoi)

使其能将字符串转换成一个 32 位有符号整数.public int myAtoi(String str) { int res = 0; int i = 0; int flag = 1; while (i < str.length() && str.charAt(i) == ' '){i++;} //处理空格 if (i < str.length() && str.charA.

2021-04-07 20:31:37 20

原创 7.整数反转

反转一个32位有符号整数。如果反转后的结果超过整型范围,返回0。不允许使用64位整数。最容易理解的方法是:整数转字符串,反转后再转回整数。其中需要处理一些细节,1是对负数的处理,2是越界的处理。public int reverse(int x) { String xString = Integer.toString(x); String string = xString; int flag = 1; //正负号 //负号处理 .

2021-04-06 10:03:40 17

原创 6.Z 字型变换

注意题目的字符串排列方式,即题目中所说的Z字型。实际上是一直向下到底部,再斜着向右到顶部,再向下到底部...一直重复到字符串结束.P A H NA P L S I I GY I R根据这个规律,模拟这种移动方式。import java.util.ArrayList;import java.util.List;public class Q6 { public String convert(String s, int numRows) {

2021-04-05 18:19:14 13

原创 5.最长回文子串

找到字符串s中的最长回文子串。动态规划:将问题分解为子问题。在本题中P(i,j)=P(i+1,j−1)∧(Si​==Sj​) //∧求交集,相当于java中的 &&边界条件P(i,i)=trueP(i,i+1)=(Si​==Si+1​)​public class Q5 { public String longestPalindrome(String s) { int n = s.length(); boolea...

2021-04-04 20:19:15 16

原创 4.寻找两个正序数组的中位数 (困难)

1.移动指针时间复杂度为O(m+n); //官方给出的二分查找方法的时间复杂度为O(log(m+n)) public double findMedianSortedArrays(int[] nums1, int[] nums2) { int m = nums1.length; int n = nums2.length; int len = m+n; int left = -1, right = -1; int i...

2021-04-03 16:53:35 9

原创 3. 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。滑动窗口法HashSet来判断重复字符 //.contains();import java.util.HashSet;import java.util.Set;public class Q3 { public int lengthOfLongestSubstring(String s) { int maxLength = 0; //滑动窗口法 Set<C...

2021-04-02 20:01:56 10

原创 2.两数相加

2. 两数相加两个数以单链表的形式(逆序)给出,求两个数相加的结果。解:题目已经给出逆序形式,即最低位是个位,因此可以按照数学的手动计算方法,从个位开始,逐位相加,有进位产生则进位。需要注意的是,如果循环结束后还有进位,需要将最后的进位添加到新的节点中。class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode head = null, tail = nu

2021-04-01 18:46:17 38

原创 1.两数之和

LeetCode:1.两数之和给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。public class Q1 { //在数组...

2021-03-31 21:19:53 17

原创 LeetCode_2021年3月31日

2021年3月31日,记录下自己的LeetCode历程。//愿意一起交流/打卡的同学可以加QQ群:751397328

2021-03-31 20:59:40 22

原创 Java新手最常见的8个错误

Java新手最常见的8个错误1.使用 == 比较对象== 运算符比较的是对象的引用。引用指向对象在内存中的地址。如果它们存储在不同的地址,那么使用==比较就会返回false。应该使用对象的equals()方法来比较。但是默认的equals()方法比较的是引用(和==一样),所以你应该重写自己的equals()方法。2.在静态方法中使用非静态变量你可能遇到过这样的报错:Non-static variable x cannot be referenced from a static context

2021-03-03 16:27:53 77 1

原创 声音合成器 1 基本噪音

视频:https://www.bilibili.com/video/BV14z4y1r7wX?p=6代码:https://github.com/OneLoneCoder/synth一、准备工作1.创建空工程,设置工程属性。链接器--输入--附加依赖项中添加winmm.lib;2.在项目中添加头文件:olcNoiseMaker.hhttps://github.com/OneLoneCoder/synth/blob/master/olcNoiseMaker.h/* ...

2021-02-10 20:26:21 151 1

原创 控制台版 贪吃蛇

一、控制台相关设置(直接复制)#include<iostream>using namespace std;#include<Windows.h>int nScreenWidth = 120;int nScreenHeight = 80;int main(){ //创建屏幕缓冲区 wchar_t * screen = new wchar_t[nScreenWidth*nScreenHeight]; for (int i = 0; i < nSc...

2021-02-09 19:09:20 88

原创 控制台版 赛车游戏

视频:https://www.bilibili.com/video/BV14z4y1r7wX?p=4&t=717代码:https://github.com/OneLoneCoder/videos/blob/master/OneLoneCoder_RetroArcadeRacer.cpp目录一、预览图二、代码过程三、完整代码一、预览图左图是做出来的效果,右图是视频中的效果。可能是控制台方面的原因显示效果有差别。二、代码...

2021-02-07 18:19:10 521

c++编程思想一二卷

c++编程思想一二卷中文版合集,涉及c++更高级的特性,使读者了解c++编程的方法与思想

2018-07-02

空空如也

空空如也

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

TA关注的人 TA的粉丝

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