- 博客(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 766
转载 如何写出好代码
本文转载于https://www.mdnice.com/writing/bc723a7756ec42d6a8c22ed29621f4e2如何写出好代码零、前言一、内容二、详解三、结语零、前言如何写好代码?这是个有意思、而且经典的话题。没有标准答案,没有现成的答案可以 copy,重视经验,但真的没有方法论和最佳实践的学习材料可以借鉴吗?答案是否定的。我从2021年11月–2022年1月,花了3个月的时间,系统的学习了一下这个主题,在此做个总结。一、内容借用 Robert C. Martin(Bo.
2022-02-02 19:37:05 331
原创 【刷】leetcode之分发糖果问题
作者:Geekwyzleetcode之分发糖果问题题目链接:https://leetcode-cn.com/problems/candy/解题思路贪心问题:先确保每个小朋友有一个糖果1.分别循环两次2.第一次循环解决右边孩子评分大于左边孩子的问题,然后让评分高的加13.第二次循环解决左边孩子评分小于右边孩子的问题,然后取两个中最大值max(nums[j - 1],nums[j] + 1);4.求和class Solution {public: int cand.
2022-02-02 11:28:46 201
原创 【刷】leetcode 之排序数组
作者:Geekwyz排序数组题目链接:https://leetcode-cn.com/problems/sort-an-array/这题直接快排不多bbclass 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 149
原创 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 381
原创 【刷】剑指 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 820 1
原创 【bug】之程序是顺序执行的
package mainimport "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 429
原创 【读】C程序设计入门
入门打印Hello,world!#include<stdio.h>int main(){ printf("Hello,world!"); return 0;}编译,加载,运行,输出在unix操作系统中1.首先建立源文件以.c为结尾,例如hello.c2.通过cc hello.c进行编译3.生成 a.out4.我们执行a.out5.打印出Hello,world!程序介绍程序 = 函数 + 变量函数包含语句,变量用来存储值在本
2022-01-28 19:37:40 371
原创 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 10587
原创 【刷】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 5808 1
原创 go语言算法之分治法详解
分治法分治法的含义递归尾递归二分查找分治法的含义字面上的解释是分而治之,就是把一个复杂的问题分成两个或更多的相同或相似的子问题。直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。分治法一般使用递归来求问题的解。递归递归就是一个函数自已调用自已本身我们先看这样一个问题给定一个数,求解这个数的阶乘现在我们用递归来求解这个问题package mainimport "fmt"func Rescuvie(n int) int{ //0的阶乘为1 if
2022-01-26 15:21:15 399
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人