Coding Challenge #3 - Lösung - k-tes Maximum

preview_player
Показать описание
Die Lösung zur 3. Coding Challenge.
Sorry, dass ich die Erklärung verbockt hab. k meint die k-größte Zahl. Also bei einer Liste von [1,2,3,4,5] wäre etwa bei k = 2 4, weil 4 die zweitgrößte Zahl ist.

_Discord:_

_Unterstützt mich - Danke!:_
Комментарии
Автор

@ 6:36 O(k) ist imho missverständlich. Besser wäre O(k*1) wenn wir bei den Konventionen dieser Notation bleiben. Und k ist uninteressant, also O(1). ;-)

brotherlui
Автор

warum kommt bei mir manchmal eine negative Zeit bei den Benchmark raus. die Anfrage kann ja nicht so lange dauern






mein Code:
def challenge3():
resp = requests.get(call_url)
task = json.loads(resp.text)
k = task["k"]
liste = task["list"]
liste.sort()


data = {"token": solution}
result = requests.post(solution_url, json.dumps(data))
print(result.text)



def benchmark3(runs):
start=time.time()
for i in range(runs):

start=time.time()
for i in range(runs):
challenge3()


nikolaipronegg
Автор

Wäre Quickselect nicht effizienter?

PS: Der Link zur Lösung funktioniert nicht, Statuscode 405

Dominik
Автор

Warum generierst du dir die Daten zum Benchmarken nicht einfach vor der eigentlichen Berechnung?

mr.unkreativ
Автор

Hier meine Lösung :) :)


zweiteliste = []

größtezahl = 0

while len(zweiteliste) < k:
for zahl in list:
while zahl > größtezahl:
größtezahl = zahl

list.remove(größtezahl)

größtezahl = 0

print(zweiteliste[k-1])

herrmann
Автор

Hey,
Ich probiere gerade ein Spiel mit Python zu entwickeln und möchte einen automatischen Updater programmieren. Jedoch hab ich keine Ahnung wie ich das am besten Anstelle. Kannst du mir da was "empfehlen"? ^^

DerTim
Автор

Hier meine Lösung:

import requests
import json

data =

k = data['k']
nummern = data['list']
nummern.sort(reverse=True)
loesung = {'token': nummern[k-1]}

r = requests.post(sol_url, json=loesung)
print(r.text)

Gravitar
Автор

Python:

import json
import requests
import time


def loesung(url_chall_3, url_sol_3) -> object:
roh = requests.get(url=url_chall_3)
json_roh = roh.json()

k = json_roh['k']
lists: object = json_roh['list']

for i in range(k - 2): #(array starts @0)
max_index = lists.index(max(lists))
del lists[max_index]

max_value = max(lists) #nun das k-te Maximum finden
dat = {"token": max_value}
result = requests.post(url=url_sol_3, data=json.dumps(dat))
print(result.text) # success.ausgeben


start = time.time()
m = 1000
for i in range(m):


Bisschen umständlich oder? --> 1000x, avg.: 0.29
...

naheliegend
Автор

Hi Leute.
Ich halte am Montag meine Informatik GFS über die 3D-Programmierung, speziell über die THREE.js Programmierung.
Vermutlich kennen sich damit die Wenigsten aus, aber vllt. könnt ihr mir ja trotzdem bei einem Problem helfen.
Ich möchte gerne einer Fläche eine Textur hinzufügen. Ich weiß zwar wie das geht, aber wenn ich den Link zum hochgeladenen Bild einfüge, wird die URL nicht 'angenommen'. Ich habe es schon damit versucht, das Bild nicht hochzuladen und es dafür in das gleiche Verzeichnis zu packen. Aber das klappt irgendwie auch net.
Ich hoffe mal, dass mir jemand helfen kann :)
Das ist der Code dazu:

var shape = new THREE.PlaneGeometry(300, 300);
var cover = new THREE.MeshBasicMaterial({
});
var cube = new THREE.Mesh(shape, cover);
scene.add(cube);

Shulkerkiste
Автор

Ich hab diesmal ewig gesessen, weil ich stets einen Error zurück bekam, obwohl alles richtig war, bis ich heraus fand das das JSON Modul, welches die requests Library verwendet, nicht mit großen Zahlen umgehen kann und dadurch das Ergebnis immer in der wissenschaftliche Notation zum Server geschickt wurde -.-
Hier nun meine Lösung: (Average time to find the solution: 0.000136s)

imolein