友好城市 https://www.acwing.com/problem/content/1014/ 画一条河的上下两岸 建桥 要求不能交叉 问最多建立多少道桥 转化成对于任何下河道的桥 转化为数组下表 上河道第几个桥变成数组的值 那么就是看LIS的值 数据给出一对值 如果不能保证单调上升说明这么做不行 使用PII 来做 #
首先看这样一段代码。 运行后在页面显示是这样的。 但是我想一次性+2,而i++只能累加1,于是我改成了这样。 var count=0; var count1=1; for(var i=1;i<=99;i+2){ count+=i; } document.write("1~99中的奇数的和是"+count); 但是浏览器的状态一直刷新,没有内容。 很明显,这是死
题目 题解 在力扣 题目56--合并区间中我们有了合并的方法 那么我们不是可以直接让newInterval加入intervals然后执行56题的方法不就行了 复杂度有点高 我们可以根据排列插入这样 能删掉一行sort 然后可以找一下合并的大概区间其他的不用动这样复杂度应该就会大大降低了 (我这里只
数组八大运算 1;冒泡排序 2;选择排序 3;直接插入排序 4;希尔排序 5;快速排序 6;归并排序 7;基数排序 8;堆排序 一 冒泡排序 原理;数组元素两两比较,交换位置,大元素向后放。那么经过一轮比较后做大的元素会出现在最大索引处 public class Outer { public static void main(String[] a
let arr = [7, 1, 3, 5, 1, 6, 8, 1, 3, 5, 7, 5, 6] function selectSort(arr) { // 排除边界值 if (arr == null || arr.length < 2) { return } else { // 遍历 for (var i = 0; i < arr.length; i++) { for (var j = i +
简单神经网络:输入层2个神经元 隐层4个神经元 输出层预测 #include "pch.h" #include <iostream> #include <cmath> #include <vector> #include <fstream> #include <random> #define INNODE 2 #define HIDENODE 4 #define OUTNODE 1 double rate = 0.8
5.19 Trie树: 用处:快速的查找和高效存储字符串集合的数据结构。 类似如此的查找,存储 其简单的两个操作:插入和删除 插入: void insert(char str[]) { int p; //定义数据前一位的位置 for (int i = 0; i < str[i]; i++) { int u = str[i] - 'a'
题目表述 整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。 示例: 输入:A = 29 (或者0b11101), B = 15(或者0b01111) 输出:2 位运算 依次判断A和B各位置上面的数字是否相同,如果不相同则改变位数res+1 class Solution { public int convertInteger(int A, int B) {
260. 只出现一次的数字 III 给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。 进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现? 示例 1:输入:nums = [1,2,1,3,2,5
题意: 一个整数被称为 k-beautiful 的,当且仅当不同的数位数量 \(\le k\) 输入 \(n,k\),求大于等于 \(n\) 的最小的 k-beautiful 数 \(T\le 1e4, 1\le n \le 1e9, 1\le k \le10\) 思路: 法一(要脑子): 找一段最短的、不同数位数恰为 k+1 的前缀 \(n[1\sim p]\) 显然这段前缀 \(n[1\sim p]
LeetCode 242. Valid Anagram (有效的字母异位词) 题目 链接 https://leetcode.cn/problems/valid-anagram/ 问题描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 示例 输入
前言 本篇博客将会介绍 CSAPP 之 CacheLab 的解题过程,分为 Part A 和 Part B 两个部分,其中 Part A 要求使用代码模拟一个高速缓存存储器,Part B 要求优化矩阵的转置运算。 解题过程 Part A 题目要求 Part A 给出了一些后缀名为 trace 的文件,文件中的内容如下图所示,其中每一行代表一
---本文就以卸载nodepad++为例子: 一、方法一:手动关闭进程 1、在设置找到想要卸载的应用,选中卸载掉应用: 2、想要删除被卸载应用的残留文件: 3、发现:操作无法完成,因为文件已经在Windows资源管理器中打开: 4、发现在任务管理器[快捷键Esc+Shift+Ctr]没有找到和Notepad++相关的进程
数组的冒泡排序 public class BobbleSortTest { public static void main(String[] args) { int[] arr = new int[]{97,3,25,10,5,30,28,19,8}; for(int i = 0;i < arr.length - 1;i++){ for(int j = 0;j < arr.length - 1 - i;j++){
!!!题目地址!!! int hammingWeight(uint32_t n) { int total = 0; for (int i = 0; i < 32; i++) { total += (n & 1); n = n >> 1; } return total; }
回文子串 1.dp法 class Solution { public: int countSubstrings(string s) { int count = 0; vector<vector<bool>> dp(s.size(), vector<bool>(s.size(), false)); for(int i = s.size()-1; i >= 0; i--) {
C. Binary String https://codeforces.ml/contest/1680/problem/C 题意 给你一个01字符串 可以选择再最前面和最后面删除若干个0或1 然后取剩余的0的个数和删去的个数中较大的那个数作为答案 求最小答案 思路 二分 + 双指针 也可以直接双指针 二分答案 首先预处理计算出01串中1的
sudo vim ~/.bashrc # alias for g++ support C++ standard 11, 14, 17, 20 alias g++11='g++ -std=c++11' alias g++14='g++ -std=c++14' alias g++17='g++ -std=c++17' alias g++20='g++ -std=c++2a' g++20 -o a test.cpp 修改完成后
给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。 思路:实际上就是比较两个字符串中相同字符的个数是否相同 class Solution { public boolean CheckPermutation(String s1, String s2) { int len1 = s1.length();
//1. 1~100 之间所有书的总和 与平均值 // var sum = 0; // var i = 1; // var average = 0; // do { // sum += i; // i++; // } while (i <= 100) // avera
连通分量 给定一个 $n \times m$ 的方格矩阵,每个方格要么是空格(用 . 表示),要么是障碍物(用 * 表示)。 如果两个空格存在公共边,则两空格视为相邻。 我们称一个不可扩展的空格集合为连通分量,如果集合中的任意两个空格都能通过相邻空格的路径连接。 这其实是一个典型的众所周知的关
A - Right String 题意 给定一个长度为\(n\)的字符串\(s\),每次可以修改其中一个字符至任意字符,至多使用\(k\)次修改。 记字符串的权重为\(\#\{f(s, i)\}\),\(f(s, i)\)表示将\(s\)循环左移\(i\)次。 其中\(n, k \le 2000\)。 思路 观察可得:答案为字符串的最小整周期。 由于\(n\)
题目 给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积。 示例: 输入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]] 输出: 2 解释: 这五个点如下图所示。组成的橙色三角形是最大的,面积为2。 注意: 3 <= points.length <= 50. 不存在重复的点。 -50 <=
sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get update sudo apt-get install gcc-7sudo apt-get install g++-7 配置:将gcc7,g++7作为默认选项 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100sudo update-alternatives --config
一、编写简单的hello world脚本,查看脚本内容,并运行 代码如下 二、加减乘除、比较等基本的算术运算 ①加减乘除,相对应的符号分别是“+、-、*、/”,只要要在两个操作数中间加上对应的符号,便可以实现对应的运算,效果如下图所示,不过只支持整数运算,不支持小数运算