- 博客(40)
- 资源 (5)
- 收藏
- 关注
原创 cpp之快速排序
快速排序 class Solution { int sort(vector<int>& nums,int left,int right) { int pivot = rand() % (right - left + 1) + left; int temp = nums[left]; nums[left] = nums[pivot]; nums[pivot] = temp; pivot = nu
2022-02-03 17:31:26
879
转载 如何写出好代码
本文转载于https://www.mdnice.com/writing/bc723a7756ec42d6a8c22ed29621f4e2 如何写出好代码零、前言一、内容二、详解三、结语 零、前言 如何写好代码?这是个有意思、而且经典的话题。没有标准答案,没有现成的答案可以 copy,重视经验,但真的没有方法论和最佳实践的学习材料可以借鉴吗?答案是否定的。我从2021年11月–2022年1月,花了3个月的时间,系统的学习了一下这个主题,在此做个总结。 一、内容 借用 Robert C. Martin(Bo.
2022-02-02 19:37:05
437
原创 【刷】leetcode之分发糖果问题
作者:Geekwyz leetcode之分发糖果问题 题目链接: https://leetcode-cn.com/problems/candy/ 解题思路 贪心问题: 先确保每个小朋友有一个糖果 1.分别循环两次 2.第一次循环解决右边孩子评分大于左边孩子的问题,然后让评分高的加1 3.第二次循环解决左边孩子评分小于右边孩子的问题,然后取两个中最大值max(nums[j - 1],nums[j] + 1); 4.求和 class Solution { public: int cand.
2022-02-02 11:28:46
288
原创 【刷】leetcode 之排序数组
作者:Geekwyz 排序数组 题目链接: https://leetcode-cn.com/problems/sort-an-array/ 这题直接快排不多bb class Solution { int sort(vector<int>& nums,int left,int right) { int i = left - 1; int j = right + 1; int x = nums[(left + right)>>1]; .
2022-02-01 16:31:37
203
原创 CPP之归并排序
思路: 将一个数组一分为二 分别对左右两边进行递归 用两个指针分別指向左右边第一个元素 比较两指针指向元素的大小,比较完后,赋值给一个空数组 有一边剩下的元素直接放到数组中 对原数组重新赋值 模版: void merge_sort(int q[],int left,int right) { if (left >= right) return; int mid = right + left>>1; merge_sort(q,left,mid);
2022-02-01 15:34:49
459
原创 【刷】剑指 Offer 数组中重复的数字
作者:Geekwyz 剑指 Offer 数组中重复的数字 题目链接: https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/ 这道题和之前我写的那个两数之和(twosum)那题很相似 https://blog.csdn.net/weixin_61197640/article/details/122652509 说一下这道题的思路吧: 1.首先想到的是暴力求解,两重循环,但是太low了且复杂度高 2.第二种就.
2022-01-29 20:17:56
869
1
原创 【bug】之程序是顺序执行的
package main import "fmt" func main(){ var upper,lower,step,f int upper = 300 lower = 0 step = 20 lower = f for upper >= lower { fmt.Println(f,lower) f = f + step } } 这段程序会发生死循环, 是我将lower = .
2022-01-29 17:58:02
484
原创 【读】C程序设计入门
入门 打印Hello,world! #include<stdio.h> int main(){ printf("Hello,world!"); return 0; } 编译,加载,运行,输出 在unix操作系统中 1.首先建立源文件以.c为结尾,例如hello.c 2.通过cc hello.c进行编译 3.生成 a.out 4.我们执行a.out 5.打印出Hello,world! 程序介绍 程序 = 函数 + 变量 函数包含语句,变量用来存储值 在本
2022-01-28 19:37:40
423
原创 go语言基本介绍
入门什么是go语言go语言的优势go语言用途 什么是go语言 Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。 go语言设计的出来的目的 1.现有编程语言明显落后于硬件发展速
2022-01-28 14:51:13
10687
原创 【刷】leetcode 3sum问题
3sum三数之和 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ? 请你找出所有和为 0 且不重复的三元组。 解题思路: 1.暴力解法:三个for循环(不推荐) 2.双指针+排序 我们直接说第二种解法: 1.我们先对数组进行排序: 2.先固定一个数叫nums[i], 然后做两个指针第一个指
2022-01-27 22:44:32
5911
1
原创 go语言算法之分治法详解
分治法分治法的含义递归尾递归二分查找 分治法的含义 字面上的解释是分而治之,就是把一个复杂的问题分成两个或更多的相同或相似的子问题。 直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。 分治法一般使用递归来求问题的解。 递归 递归就是一个函数自已调用自已本身 我们先看这样一个问题 给定一个数,求解这个数的阶乘 现在我们用递归来求解这个问题 package main import "fmt" func Rescuvie(n int) int{ //0的阶乘为1 if
2022-01-26 15:21:15
490
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅