整數刪除數字求最小值-貪心演算法 c++實現
#include<iostream>
#include<string.h>
using namespace std;
void calculate(char *a,int k)
{
int len=strlen(a);
for(int count=0;count<k;count++){
for(int i=0;i<len;i++){
if(a[i]>a[i+1]){
for(int j=i;j<len;j++){
a[j]=a[j+1];
}
break;
}
}
}
cout<<"刪除之後生成的最小數為:"<<a;
}
int main()
{
char s[50];
int k;
cout<<"請輸入整數"<<endl;
cin.get(s,50);
cout<<"請輸入要刪除的位數"<<endl;
cin>>k;
calculate(s,k);
return 0;
}
相關推薦
整數刪除數字求最小值-貪心演算法 c++實現
#include<iostream> #include<string.h> using namespace std; void calculate(char *a,int k) { int len=strlen(a); &nb
2017.12.27 算法分析 貪心算法刪除數字求最小值問題
算法 取出 -- 每次 for iostream 理解 後繼 code 1個n位正整數a,刪去其中的k位,得到一個新的正整數b,設計一個貪心算法,對給定的a和k得到最小的b; 一.我的想法:先看例子:a=5476579228;去掉4位,則位數n=10,k=4,要求的最小數字
貪心演算法---刪除數字求最小值
教材170頁第18題。刪除數字求最小值 給定一個n位正整數a, 去掉其中k個數字後按原左右次序將組成一個新的正整數。對給定的a, k尋找一種方案,使得剩下的數字組成的新數最小。 提示:應用貪心演算法設計求解 操作物件為n位正整數,有可能超過整數的範圍,儲存在陣列a中,陣
刪除數字求最小值
給定一個n位正整數a, 去掉其中k個數字後按原左右次序將組成一個新的正整數。對給定的a, k尋找一種方案,使得剩下的數字組成的新數最小。 提示:應用貪心演算法設計求解 操作物件為n位正整數,有可能超過整數的範圍,儲存在陣列a中,陣列中每一個數組元素對應整數的一位數字。 在整數的位數固定的
演算法學習——貪心演算法之刪數字(求最小值)
演算法描述 在給定的n位數字,刪除其中的k位數字( k < n),使得最後的n-k為數字為最小值(原次序不變) 演算法思路 考慮到是要移出數字,我們使用連結串列設計此演算法較為方便,連結串列可以直接移出某個位置的元素 使用貪心演算法,每一步都要達到最優 從最高位開始,若下一位比上一位要小,則將上一
貪婪策略:數字去掉幾位求最小值實現
問題分析 在位數固定的前提下,讓高位的數字儘量小,其值就較小。依據此貪婪策略就可以解決這個問題。 如何根據貪婪策略刪除數字呢?總目標是刪除高位較大的數字,具體地相鄰兩位比較,若高位比低位大則刪除高位。 程式碼一般實現: package com.demo.test.util; /**
Java不確定參數的個數函數方法,實現求最小值
string 方法 argv 其中 span pub package values @param package 參數個數不確定方法; /** * @ClassName Test * @Description TODO * @Author cherry * @D
[TensorFlowJS只如初見]實戰一·JavaScript原生程式碼實現梯度下降求最小值
[TensorFlowJS只如初見]實戰一·JavaScript原生程式碼實現梯度下降 問題描述: 求解y1 = xx -2 x +3 + 0.01*(-1到1的隨機值) 與 y2 = 0 的最小距離點(x,y) 給定x範圍(0,3 不使用學習框架,手動編寫梯度下降公式求解,提示
[深度學習入門]實戰一·Numpy梯度下降求最小值
[深度學習入門]實戰一·Numpy梯度下降求最小值 問題描述: 求解y1 = xx -2 x +3 + 0.01*(-1到1的隨機值) 與 y2 = 0 的最小距離點(x,y) 給定x範圍(0,3 不使用學習框架,手動編寫梯度下降公式求解,提示:x = x - alp*(y1-
動態規劃求解(添+號求最小值和問題)
案例提出:在一個n位整數a(只考慮正整數的情況)中插入r個加號,將它分成r+1個整數,找出一種加號的插入方法,使得這r+1個整數的和最小。 動態規劃設計要點:對於一般插入r個+號問題,採用列舉不適合。注意到插入r個+號是一個多階層決策問題,所以採用動態規劃 來求解是最適宜的
刪數最小值問題(Java實現)——貪心演算法
刪數最小值問題——貪心演算法 【問題描述】 給定一個 n 位正整數 a , 去掉其中 k<=n 個數字後按原左右次序將組成一個新的正整數。對給定的 a , k 尋找一種方案,使得剩下的數字組成的新數最小。 程式原始碼: package SF; import j
Hibernate hql查詢語句 Count:統計函式 Min:求最小值函式 Max:求最大值函式 Sum:求和函式 Avg:求平均數函式
在HQL中可以呼叫 Count:統計函式 Min:求最小值函式 Max:求最大值函式 Sum:求和函式 Avg:求平均數函式 Count:統計函式 Session session = HibernateSessionFactory.getSession(); Transaction tx = sess
三分求最小值——HDU3400
題目連結: 題目大意: 給定兩條線AB和CD,現在要從A點,走到D點。 線上段上AB上走,速度是p,線上段CD,上走速度是q,在空間中其他地方走速度是r。 求所需的最小時間。 解題思路: 線上段AB上,任取一點E,A-E-CD的時間必定是一個關於點E的凹函式。 那麼我
初學Java:計算陣列中最大值 ---計算陣列中最小值----計算陣列之和----實現兩個陣列----拼接陣列擷取
public class ArrayUtils{ //建立類(陣列工具類) //1.計算陣列中最大值 public static int arrayMaxElement(int [] data){ //建立方法 if(data == null){
求陣列相鄰元素差值的最大值快速演算法(C++版)
題目: 整形陣列A,請設計一個複雜度為O(n)的演算法,算出排序後相鄰兩數的最大差值。 給定一個int陣列A和A的大小n,請返回最大的差值。保證陣列元素多於1個。 思路: 基於桶排序思想 n
一元線性迴歸模型與最小二乘法及其C++實現
監督學習中,如果預測的變數是離散的,我們稱其為分類(如決策樹,支援向量機等),如果預測的變數是連續的,我們稱其為迴歸。迴歸分析中,如果只包括一個自變數和一個因變數,且二者的關係可用一條直線近似表示,這種迴歸分析稱為一元線性迴歸分析。如果迴歸分
最小二乘法及其C++實現
監督學習中,如果預測的變數是離散的,我們稱其為分類(如決策樹,支援向量機等),如果預測的變數是連續的,我們稱其為迴歸。迴歸分析中,如果只包括一個自變數和一個因變數,且二者的關係可用一條直線近似表示,這種迴歸分析稱為一元線性迴歸分析。如果迴歸分析中包括兩個或兩個以上的自變數,且因變數和自變數
最小編輯距離及其C++實現
一、問題介紹: 本題提出了一些關於將字串x[1..m]轉換成y[1..n]的操作。 這些操作有複製、替代、刪除、插入、互換和終止。 這些操作所需的開銷是不同的,但每個操作的開銷都可以看是一個我們已經的常量,我們假設複製和替代這類操作的開銷要比插入和刪除這類操作的開銷少。 我
n個顧客等待服務-貪心演算法c++實現
#include<iostream> #include<algorithm> using namespace std; typedef struct pers{ int id; int time; }
路徑規劃(最短路徑)演算法C#實現
///<summary>/// RoutePlanner 提供圖演算法中常用的路徑規劃功能。 /// 2005.09.06 ///</summary>publicclass RoutePlanner { public RoutePlan